首页 > 解决方案 > 这两种保存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.hdf5加载和预测性能有什么区别model_weights.h5

标签: pythonmachine-learningneural-networkkeras

解决方案


不,在性能方面没有区别。这些只是保存模型的两种不同方式,尤其是何时保存模型。model.save_weights每当您想保存模型时,例如在训练或部分训练完成后,使用需要特别调用此函数。如果您仍在开发模型,使用ModelCheckpoint会更加方便。使用这种方式,keras可以在每个训练 epoch 后保存一个模型的检查点,以便您可以恢复不同的模型;或者您可以设置仅在性能提高时才覆盖最新的检查点,save_best_only=True以便keras 您以性能最佳的模型结束。

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


推荐阅读