您好,登錄后才能下訂單哦!
回調函數callbacks怎么用,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
下面我們介紹回調函數。
tf.keras的回調函數實際上是一個類,一般是在model.fit時作為參數指定,用于控制在訓練過程開始或者在訓練過程結束,在每個epoch訓練開始或者訓練結束,在每個batch訓練開始或者訓練結束時執行一些操作,例如收集一些日志信息,改變學習率等超參數,提前終止訓練過程等等。
同樣地,針對model.evaluate或者model.predict也可以指定callbacks參數,用于控制在評估或預測開始或者結束時,在每個batch開始或者結束時執行一些操作,但這種用法相對少見。
大部分時候,keras.callbacks子模塊中定義的回調函數類已經足夠使用了,如果有特定的需要,我們也可以通過對keras.callbacks.Callbacks實施子類化構造自定義的回調函數。
所有回調函數都繼承至 keras.callbacks.Callbacks基類,擁有params和model這兩個屬性。
其中params 是一個dict,記錄了 training parameters (eg. verbosity, batch size, number of epochs...).
model即當前關聯的模型的引用。
此外,對于回調類中的一些方法如on_epoch_begin,on_batch_end,還會有一個輸入參數logs, 提供有關當前epoch或者batch的一些信息,并能夠記錄計算結果,如果model.fit指定了多個回調函數類,這些logs變量將在這些回調函數類的同名函數間依順序傳遞。
BaseLogger:收集每個epoch上metrics在各個batch上的平均值,對stateful_metrics參數中的帶中間狀態的指標直接拿最終值無需對各個batch平均,指標均值結果將添加到logs變量中。該回調函數被所有模型默認添加,且是第一個被添加的。
History:將BaseLogger計算的各個epoch的metrics結果記錄到history這個dict變量中,并作為model.fit的返回值。該回調函數被所有模型默認添加,在BaseLogger之后被添加。
EarlyStopping:當被監控指標在設定的若干個epoch后沒有提升,則提前終止訓練。
TensorBoard:為Tensorboard可視化保存日志信息。支持評估指標,計算圖,模型參數等的可視化。
ModelCheckpoint:在每個epoch后保存模型。
ReduceLROnPlateau:如果監控指標在設定的若干個epoch后沒有提升,則以一定的因子減少學習率。
TerminateOnNaN:如果遇到loss為NaN,提前終止訓練。
LearningRateScheduler:學習率控制器。給定學習率lr和epoch的函數關系,根據該函數關系在每個epoch前調整學習率。
CSVLogger:將每個epoch后的logs結果記錄到CSV文件中。
ProgbarLogger:將每個epoch后的logs結果打印到標準輸出流中。
可以使用callbacks.LambdaCallback編寫較為簡單的回調函數,也可以通過對callbacks.Callback子類化編寫更加復雜的回調函數邏輯。
如果需要深入學習tf.Keras中的回調函數,不要猶豫閱讀內置回調函數的源代碼。
看完上述內容,你們掌握回調函數callbacks怎么用的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。