我看到了两种保存 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
之间的预测性能有何差异?
最佳答案
不,性能方面没有差异。这些只是保存模型的两种不同方式,尤其是保存模型的时间。使用 model.save_weights 需要在您想要保存模型时特别调用此函数,例如培训或部分培训完成后。如果您仍在开发模型,那么使用 ModelCheckpoint 会方便得多。通过这种方式,keras 可以在每个训练周期后保存模型的检查点,以便您可以恢复不同的模型;或者您可以设置 save_best_only=True
,以便 keras
仅在性能有所改善时才会覆盖最新的检查点,以便最终获得性能最佳的模型。
总结一下:这只是做两件不同事情的两种不同方式。这取决于您的用例和需求,什么是最好的。
关于python - 这两种保存keras机器学习模型权重的方式有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51923048/