machine-learning - model.save() 是保存最后一个 epoch 还是最好 epoch 的模型?
问题描述
这个单行用来保存keras深度学习神经网络模型。
model.save('my_model.h5')
model.save()
保存最后一个时期的模型还是最好的时期?有时,最后一个 epoch 并没有提供性能改进。
解决方案
它将模型保存在其确切的当前状态。如果此语句在Model#fit
方法完成之后,则它表示最后一个 epoch。
对于最佳时期(假设最佳 == 最小损失或更高准确度),您可以为此使用ModelCheckpoint:
epochs = 100
# other parameters...
model.fit(x, y,
epochs=epochs,
validation_data=valid,
verbose=2,
callbacks=[
TerminateOnNaN(),
TensorBoard('./logs'),
ModelCheckpoint('best.h5',
save_best_only=True),
...
])
# the model is holding the weights optimized for 100 epochs.
model.load_weights('best.h5') # load weights that generated the min val loss.
推荐阅读
- wordpress - WordPress - 你可以在页面上有斜杠,但在帖子中没有斜杠吗?
- python - cx_Oracle 获取布尔返回值
- flutter - 当按钮被放置在 ListView.builder 小部件中时,它们的子元素居中
- javascript - React fullCalendar,在 eventReceive 函数中到达 this.props
- ios - “忽略文件...为 iOS-armv7 构建,但尝试链接为 iOS-arm64 构建的文件”
- discord.js - 为什么 Collection#find 不适用于没有角色的离线成员?(discord.js)
- javascript - Mongoose:如何将之后创建的文档中的数据传递到之前创建的文档中?
- azure-active-directory - 有没有办法从服务主体中获取 Azure AD 租户列表?
- python - Discord on_reaction_add 错误未知角色
- java - 堆叠的 if 语句在 java 中不起作用