我看到了两种保存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
只会在性能提升时覆盖最新的检查点,从而你最终得到性能最佳的模型。
总结来说:这只是两种不同的方法,用于做两件不同的事情。具体使用哪种方法取决于你的用例和需求。