model.save()是否保存最后一个时期或最佳时期的模型?

时间:2018-08-20 03:10:39

标签: machine-learning neural-network keras deep-learning

此单个内衬用于保存keras深度学习神经网络模型。

model.save('my_model.h5')

model.save()是否保存最后一个时期或最佳时期的模型?有时,最后一个时期并不能改善性能。

1 个答案:

答案 0 :(得分:7)

它将模型保存为确切的当前状态。如果此语句是在Model#fit方法完成之后,则表示最后一个纪元。

对于最佳时期(假设最佳==最小损失或更高精度),您可以为此使用ModelCheckpoint

epochs = 100
# other parameters...

model.fit(x, y,
          epochs=epochs,
          validation_data=valid,
          verbose=2,
          callbacks=[
              TerminateOnNaN(),
              TensorBoard('./logs'),
              ModelCheckpoint('best.h5',
                              save_best_only=True),
              ...
          ])
# the model is holding the weights optimized for 100 epochs.
model.load_weights('best.h5')  # load weights that generated the min val loss.