作者:井然洞中别样天 | 来源:互联网 | 2022-12-07 11:54
我看到了两种减轻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
有何不同?
1> zimmerrol..:
不,在性能方面没有区别。这只是如何保存模型以及何时保存模型的两种不同方式。model.save_weights
每当需要保存模型时(例如在训练或训练的一部分完成之后),使用require都要特别调用此函数。ModelCheckpoint
如果您仍在开发模型,则使用起来会更加方便。使用这种方法,keras
可以在每个训练时期之后保存模型的检查点,以便您可以还原不同的模型;或者您可以进行设置,save_best_Only=True
以便keras
仅在性能提高后才覆盖最新的检查点,从而以性能最佳的模型结束。
概括起来:这只是做两种不同事情的两种不同方式。这取决于您的用例和需求,什么才是最好的。
感谢您的回答。已投票。我认为有一个关键的区别。结合使用带有“ save_best_Only= True”的“ ModelCheckpoint”,可以确保保存最佳权重。无法保证其他方法。因此,`save_best_Only= True`总是更好。我想不出任何其他原因不要一直使用它。
@FloridaMan一样。只是不同的文件扩展名,否则文件将是相同的。* .h5和* .hdf5是同义词文件扩展名。