Posted on

如何使用回撥(callbacks)來觸發訓練週期的結束

在 TensorFlow 和 Keras 中,可以使用回撥 (callbacks) 來在訓練週期結束時觸發某些操作。回撥是一個類似於函數的物件,可以在訓練過程中的特定時間點被調用。

其中一種回撥叫做 ModelCheckpoint,它能在訓練的某個時間點保存模型的權重。另一種叫做 EarlyStopping,它能在訓練達到一定的準確率後停止訓練。

要在訓練週期結束時觸發回撥,需要在調用 fit() 或者 fit_generator() 時將它們添加為參數。

範例:

from keras.callbacks import ModelCheckpoint, EarlyStopping

callbacks = [ModelCheckpoint('model.h5'), EarlyStopping(monitor='val_loss', patience=2)]

model.fit(X_train, y_train, epochs=10, callbacks=callbacks, validation_data=(X_val, y_val))

這樣的程式會在訓練結束後儲存權重並在驗證損失停止改善2次後停止訓練

通常,回撥可以根據您的需求進行自定義,並結合多種回撥以實現複雜的訓練流程。