簡體   English   中英

如何在Keras中保存最佳和最新模型?

[英]How to save both best and latest model in keras?

我想使用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)

如果用最新模型表示最后時期之后的模型,則只需保留Checkpoint函數不變並保存最終結果即可。

擬合模型后,添加以下代碼行:

model.save('my_model.h5')

檢查點功能將保存最佳模型,並且在您完成訓練后,無論結果如何,該模型將保存一個最終時間。

您可以創建一個新的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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM