2017-04-26 119 views
1

我正在嘗試訓練模型。我正在使用基本上保存最佳模型的檢查點的回調(驗證中損失函數最小)。我遇到的問題是有時候這個最小值是在第一個時代,驗證看起來有點不穩定。一旦模型穩定或在一定數量的時代之後,是否有辦法使用檢查點?在keras中保存穩定的模型(深度學習)

這裏我的訓練和驗證曲線的畫面:

enter image description

+1

解決方法是使用modelcheckpoint回調https://keras.io/callbacks/#modelcheckpoint中的參數週期。例如,您可以將您的期限設置爲5以避免這一點。 – maz

回答

0

您可以使用自定義的回調,其中,你可以有你的條件邏輯語句。如果滿足條件,可以從這裏調用ModelCheckpoint代碼https://github.com/fchollet/keras/blob/master/keras/callbacks.py#L316

如果我的話沒有意義,這段代碼將會!

謝謝。

class ModifiedCheckpoint(keras.callbacks.Callback): 
    def __init__(...): 
     <copy code>   
     return 
    def on_train_begin(self, logs={}): 
     return 

    def on_train_end(self, logs={}): 
     return 

    def on_epoch_begin(self, epoch, logs={}): 
     return 

    def on_epoch_end(self, epoch, logs={}): 
     <insert your logic here> 
     <and copy code here> 
     return 

    def on_batch_begin(self, batch, logs={}): 
     return 

    def on_batch_end(self, batch, logs={}): 
     return