从特定时代继续培训

时间:2016-04-01 12:10:11

标签: keras

我使用适合Keras模型的资源管理器将对服务器的访问限制为每天1天。在这一天之后,我需要开始一份新工作。是否可以使用Keras将当前模型保存在纪元K中,然后加载该模型以继续训练纪元K + 1(即,使用新工作)?

3 个答案:

答案 0 :(得分:10)

您可以通过指定回调来保存每个纪元后的权重:

weight_save_callback = ModelCheckpoint('/path/to/weights.{epoch:02d}-{val_loss:.2f}.hdf5', monitor='val_loss', verbose=0, save_best_only=False, mode='auto')
model.fit(X_train,y_train,batch_size=batch_size,nb_epoch=nb_epoch,callbacks=[weight_save_callback])

这将在每个纪元后保存重量。然后,您可以使用以下命令加载它们:

model = Sequential()
model.add(...)
model.load('path/to/weights.hf5')

当然,在这两种情况下,您的模型都必须相同。

答案 1 :(得分:0)

您可以添加initial_epoch参数。这将使您可以从特定纪元继续训练。

答案 2 :(得分:0)

您可以在下一个时期自动开始训练。!

您需要的是使用培训日志文件跟踪培训情况,如下所示:

eventSchema.virtual('joinDate_formatted').get(function () {

return moment(joinDate).calendar({
  sameDay: 'h:mm A',
  nextDay: '[Tomorrow] h:mm A',
  nextWeek: 'dddd',
  lastDay: '[Yesterday] h:mm A',
  lastWeek: '[Last] dddd',
  sameElse: 'DD/MM/YYYY h:mm A'

}); //Above shows in calendar format but u can do whatever u want in moment
});

这就是所有人!

相关问题