回調函數是壹組在訓練的特定階段被調用的函數集,妳可以使用回調函數來觀察訓練過程中網絡內部的狀態和統計信息。通過傳遞回調函數列表到模型的.fit()中,即可在給定的訓練階段調用該函數集中的函數。
Tips雖然我們稱之為回調“函數”,但事實上Keras的回調函數是壹個類,回調函數只是習慣性稱呼
Callback
keras.callbacks.Callback()
這是回調函數的抽象類,定義新的回調函數必須繼承自該類
類屬性
params:字典,訓練參數集(如信息顯示方法verbosity,batch大小,epoch數)
model:keras.models.Model對象,為正在訓練的模型的引用
回調函數以字典logs為參數,該字典包含了壹系列與當前batch或epoch相關的信息。
目前,模型的.fit()中有下列參數會被記錄到logs中:
在每個epoch的結尾處(on_epoch_end),logs將包含訓練的正確率和誤差,acc和loss,如果指定了驗證集,還會包含驗證集正確率和誤差val_acc)和val_loss,val_acc還額外需要在.compile中啟用metrics=['accuracy']。
在每個batch的開始處(on_batch_begin):logs包含size,即當前batch的樣本數
在每個batch的結尾處(on_batch_end):logs包含loss,若啟用accuracy則還包含acc