Keras 在额外纪元继续训练后正确保存检查点 - 初始纪元



当我决定训练新模型并保存检查点时,ModelCheckpoint效果很好,因为我希望它们被保存。但是,当我决定为n多个时期训练相同的模型时,我的问题出现了。问题是纪元重置为 0,这将生成一些模型检查点名称,如下所示:

/checkpoints
checkpoint-01-0.24.h5
checkpoint-02-0.34.h5
checkpoint-03-0.37.h5
.
.
checkpoint-m-0.68.h5
checkpoint-01-0.71.h5
checkpoint-02-0.73.h5
checkpoint-03-0.74.h5
.
.
checkpoint-n-0.85.h5

如您所见,纪元将被重置。我想要实现的是获取以前迭代中所有纪元的数量,并将其添加新纪元以获得如下所示的内容:

checkpoint-(m + 01)-0.71.h5
checkpoint-(m + 02)-0.73.h5
checkpoint-(m + 03)-0.74.h5
.
.
checkpoint-(m + n)-0.85.h5

正如您在.fit()函数的文档中所读到的,有一个参数可以做到这一点:

initial_epoch:开始训练的时期(对于恢复以前的训练运行很有用(

所以只需添加:

model.fit(..., initial_epoch=m)

其中,如您的示例所示,m 是要运行的第一个纪元。

我希望这对:)有所帮助

最新更新