Tensorflow-Keras:从检查点加载权重会显着增加图形大小

时间:2020-02-28 14:26:13

标签: python tensorflow keras

我正在使用一个相当大的网络(9800万个参数),我正在使用Keras ModelCheckPoint回调按如下方式保存权重,当我使用keras重新加载已保存的权重时,我可以看到加载操作大约增加了10我的图形中每层的操作。这导致整个网络的大量内存增加。这是预期的行为吗?如果是这样,是否有已知的解决方法?

详细信息: 我正在使用:tf.keras.callbacks.ModelCheckpoint"save_weights_only=True"作为参数来保存权重

加载它的代码是:

model.load_weights(path_to_existing_weights)

其中模型是自定义的keras模型。

我正在使用Tensorflow 1.14Keras 2.3.0

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

在我看来,这是意外行为,但我看不到任何明显的错误消息。您确定在保存权重和重新加载权重之间模型没有变化吗?我所建议的就是尝试做同样的事情,除了这次在回调中更改它以保存整个模型。然后重新加载模型,然后检查图形。我也遇到了这个问题,怀疑是问题所在,但我会检查一下

为了将Keras模型保存为HDF5文件,例如通过keras.callbacks.ModelCheckpoint, Keras使用h5py Python软件包。它是Keras的依赖项,应默认安装。 如果不确定是否安装了h5py,则可以打开Python shell并通过以下方式加载模块 import h5py如果导入没有错误,则说明已安装,否则,您可以找到详细的安装 此处的说明:http://docs.h5py.org/en/latest/build.html

也许您可以尝试重新安装它。