python - 这两种保存keras机器学习模型权重的方式有什么区别?

标签 python machine-learning neural-network keras

我看到了两种保存 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.hdf5model_weights.h5 之间的预测性能有何差异?

最佳答案

不,性能方面没有差异。这些只是保存模型的两种不同方式,尤其是保存模型的时间。使用 model.save_weights 需要在您想要保存模型时特别调用此函数,例如培训或部分培训完成后。如果您仍在开发模型,那么使用 ModelCheckpoint 会方便得多。通过这种方式,keras 可以在每个训练周期后保存模型的检查点,以便您可以恢复不同的模型;或者您可以设置 save_best_only=True ,以便 keras 仅在性能有所改善时才会覆盖最新的检查点,以便最终获得性能最佳的模型。

总结一下:这只是做两件不同事情的两种不同方式。这取决于您的用例和需求,什么是最好的。

关于python - 这两种保存keras机器学习模型权重的方式有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51923048/

相关文章:

python - 从 For 循环 Python 中的迭代总数中减去字典值

machine-learning - 在下面的示例中,避免过度拟合的最佳时期是什么?

python - 使用 Scipy.opt 进行 Andrew NG Logistic 回归中的形状误差

python - 如何使用pycaffe重构caffe net

python - 如何使用 pyspark 启动独立集群?

python - MultiIndexing 行与 pandas DataFrame 中的列

python - 如何在给定特征集作为字典的情况下实现交叉验证和随机森林分类器?

image - 适用于小图像 (80x80) 的最佳 CNN 架构?

machine-learning - 如何正确推导二次成本函数

python - 将字符串转换为日期时间