我想使用Keras Model
检查点回调来保存最佳模型和最新模型。有没有一种方法可以解决此问题,而无需创建新的ModelCheckpoint
类和修改on_epoch_end
函数?
我当前使用的检查点是:
checkpter = keras.callbacks
.ModelCheckpoint(checkpoint_dir + 'checkpt_{epoch:02d} + _.hdf5', monitor='val_loss',
verbose=1, save_best_only=True, save_weights_only=True, mode='auto',
period=1)
答案 0 :(得分:1)
如果最新模型是指最后一个时期之后的模型,则只需保留Checkpoint函数不变并保存最终结果即可。
拟合模型后,添加以下代码行:
model.save('my_model.h5')
检查点功能将保存最佳模型,并且在完成训练后,无论结果如何,模型都将保存最后的时间。
答案 1 :(得分:0)
您可以创建一个新的callback
函数来在每个时期保存模型。
class saveLatesModel(keras.callbacks.Callback):
def __init__(self, modelSaveLocation='', modelName=''):
super(keras.callbacks.Callback, self).__init__()
self.modelSaveLocation = '..'
self.modelName = '..'
def on_epoch_end(self, epoch, logs={}):
self.model.save(self.modelSaveLocation+self.modelName+'.hdf5', overwrite=True)