猿问

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

我在一个循环中手动运行这些时期,以及在循环中进一步嵌套的小批量。在每个 mini-batch 中,我需要调用train_on_batch, 来启用定制模型的训练。

是否有手动方法来恢复提前停止的功能,即打破循环?


蝴蝶刀刀
浏览 229回答 1
1回答

慕标琳琳

在实践中,“提前停止”主要通过以下方式完成:(1) 训练 X 个 epoch,(2)每次达到新的最佳性能时保存模型,(3) 选择最佳模型。“最佳性能”定义为实现最高(例如准确性)或最低(例如损失)验证指标 - 下面的示例脚本:best_val_loss = 999 # arbitrary init - should be high if 'best' is low, and vice versanum_epochs = 5epoch = 0while epoch < num_epochs:&nbsp; &nbsp; model.train_on_batch(x_train, y_train)&nbsp; # get x, y somewhere in the loop&nbsp; &nbsp; val_loss = model.evaluate(x_val, y_val)&nbsp; &nbsp; if val_loss < best_val_loss:&nbsp; &nbsp; &nbsp; &nbsp; model.save(best_model_path) # OR model.save_weights()&nbsp; &nbsp; &nbsp; &nbsp; print("Best model w/ val loss {} saved to {}".format(val_loss, best_model_path))&nbsp; &nbsp; # ...&nbsp; &nbsp; epoch += 1请参阅保存 Keras 模型。如果你宁愿直接提前停止,那么定义一些指标 - 即条件 - 这将结束火车循环。例如,while True:&nbsp; &nbsp; loss = model.train_on_batch(...)&nbsp; &nbsp; if loss < .02:&nbsp; &nbsp; &nbsp; &nbsp; break
随时随地看视频慕课网APP

相关分类

Python
我要回答