为了账号安全,请及时绑定邮箱和手机立即绑定

我们如何使用 train_on_batch 执行提前停止?

我们如何使用 train_on_batch 执行提前停止?

蝴蝶刀刀 2022-06-07 19:03:18
我在一个循环中手动运行这些时期,以及在循环中进一步嵌套的小批量。在每个 mini-batch 中,我需要调用train_on_batch, 来启用定制模型的训练。是否有手动方法来恢复提前停止的功能,即打破循环?
查看完整描述

1 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

在实践中,“提前停止”主要通过以下方式完成:(1) 训练 X 个 epoch,(2)每次达到新的最佳性能时保存模型,(3) 选择最佳模型。“最佳性能”定义为实现最高(例如准确性)或最低(例如损失)验证指标 - 下面的示例脚本:


best_val_loss = 999 # arbitrary init - should be high if 'best' is low, and vice versa

num_epochs = 5

epoch = 0


while epoch < num_epochs:

    model.train_on_batch(x_train, y_train)  # get x, y somewhere in the loop

    val_loss = model.evaluate(x_val, y_val)


    if val_loss < best_val_loss:

        model.save(best_model_path) # OR model.save_weights()

        print("Best model w/ val loss {} saved to {}".format(val_loss, best_model_path))

    # ...

    epoch += 1

请参阅保存 Keras 模型。如果你宁愿直接提前停止,那么定义一些指标 - 即条件 - 这将结束火车循环。例如,


while True:

    loss = model.train_on_batch(...)

    if loss < .02:

        break


查看完整回答
反对 回复 2022-06-07
  • 1 回答
  • 0 关注
  • 228 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信