在Keras中,回調(diào)函數(shù)是一種在訓(xùn)練過程中自定義的操作,可以在每個(gè)訓(xùn)練周期的不同階段執(zhí)行?;卣{(diào)函數(shù)可以用于監(jiān)控模型的性能、保存模型、調(diào)整學(xué)習(xí)率等。以下是如何在Keras中使用回調(diào)函數(shù)的步驟:
from keras.callbacks import EarlyStopping, ModelCheckpoint
callbacks = [EarlyStopping(monitor='val_loss', patience=5),
ModelCheckpoint(filepath='best_model.h5', monitor='val_loss', save_best_only=True)]
model.fit(x_train, y_train, validation_data=(x_val, y_val), callbacks=callbacks)
在上面的例子中,我們添加了兩個(gè)回調(diào)函數(shù):一個(gè)是EarlyStopping,用于在驗(yàn)證集上的損失不再減小時(shí)停止訓(xùn)練;另一個(gè)是ModelCheckpoint,用于保存在驗(yàn)證集上表現(xiàn)最好的模型。
from keras.callbacks import Callback
class CustomCallback(Callback):
def on_epoch_end(self, epoch, logs=None):
print('End of epoch:', epoch)
print('Training loss:', logs.get('loss'))
print('Validation loss:', logs.get('val_loss'))
callbacks = [CustomCallback()]
model.fit(x_train, y_train, validation_data=(x_val, y_val), callbacks=callbacks)
在上面的例子中,我們定義了一個(gè)自定義的回調(diào)函數(shù)CustomCallback,用于在每個(gè)訓(xùn)練周期結(jié)束時(shí)輸出訓(xùn)練損失和驗(yàn)證損失。
通過以上步驟,您可以很容易地在Keras中使用回調(diào)函數(shù)來監(jiān)控和控制模型的訓(xùn)練過程。