我看到了两种减轻keras模型权重的方法。
第一种方式;
checkpointer = ModelCheckpoint(filepath="weights.hdf5", verbose=1, save_best_only=True)
model.fit(x_train, y_train,
nb_epoch=number_of_epoch,
batch_size=128,
verbose=1,
validation_data=(x_test, y_test),
callbacks=[reduce_lr, checkpointer],
shuffle=True)
第二种方式;
model.save_weights("model_weights.h5")
两种方式有什么区别?加载weights.hdf5
和model_weights.h5
之间的预测性能有何不同?
答案 0 :(得分:5)
不,在性能方面没有区别。这只是如何保存模型以及何时保存模型的两种不同方式。使用model.save_weights
时,无论何时要保存模型,都需要特别调用此函数。训练或部分训练完成后。如果您仍在开发模型,则使用ModelCheckpoint
更为方便。通过这种方式,keras
可以在每个训练时期之后保存模型的检查点,以便您可以还原不同的模型;或者您可以设置save_best_only=True
以便keras
仅在性能提高后才覆盖最新的检查点,从而以性能最佳的模型结束。
总结一下:这只是做两种不同事情的两种不同方式。这取决于您的用例和需求,什么才是最好的。
答案 1 :(得分:1)
正如这里的基本解释reference.wolfram.com/language/ref/format/HDF5.html
<块引用>HDF
是分层数据格式的首字母缩写词。 HDF5
是 HDF
版本 5。
Import["file.h5"]
<块引用>
导入一个 HDF5 文件,返回 存储在文件中的数据集的名称。
在 Keras 文档中;如您所见keras.io/api/models/model_saving_apis/
model.save('my_model.h5') # creates a HDF5 file 'my_model.h5'
在 Tensorflow 文档中;如您所见tensorflow.org/tutorials/keras/save_and_load
# Save the entire model to a HDF5 file.
# The '.h5' extension indicates that the model should be saved to HDF5.
model.save('my_model.h5')
从根本上讲,它们是一回事。他们不能创造任何差异。