繁体   English   中英

在 TF/Keras 中是否可以在 X epochs 之后保存最佳模型?

[英]Is it possible in TF/Keras to save the best model AFTER X epochs?

我的模型运行得非常快,但它们似乎变慢了,因为我正在保存最好的模型(在另一个进程中加载​​); 但我注意到保存过程本身会减慢处理速度。 在拟合的早期阶段,每次迭代都在改进,它增加了越来越多的延迟。

我想知道是否有办法在 X epochs 之后保存最佳模型或将其保存在后台,以便模型训练不会因保存过于频繁而延迟?

为清楚起见,这就是我在ModelCheckpoint /TF2 中运行ModelCheckpoint

filepath="BestModel.hdf5"
checkpoint = ModelCheckpoint(filepath, monitor='loss', verbose=1, save_best_only=True, mode='min')
callbacks_list = [checkpoint]
# fit the model
model.fit(x, y, epochs=40, batch_size=50, callbacks=callbacks_list)

您可以使用save_freq的说法ModelCheckpoint回调来控制节电的频率。 默认情况下,它设置为'epoch' ,这意味着它会在每个 epoch 结束时保存模型; 但是,它也可以设置为一个整数,以确定要传递的次数以保存模型。 以下是文档相关部分供参考:

save_freq : 'epoch'或整数。 使用'epoch' ,回调会在每个 epoch 之后保存模型。 使用整数时,回调在这么多批次结束时保存模型。 如果Model是用experimental_steps_per_execution=N编译的,那么保存标准将每第 N 批检查一次。 请注意,如果保存未与时期对齐,则受监控的指标可能不太可靠(它可能反映少至 1 个批次,因为指标在每个时期都会重置)。 默认为'epoch'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM