- 问题描述
假如我们设置得训练次数是30次,但是训练了20次之后,验证集得损失不再下降,精确度不再上升,所以第20轮之后。模型逐渐开始过拟合。
-
对策
对于这种特殊情况,我们可以通过在二十个左右的时期之后停止训练来防止过度拟合。
稍后,您将看到如何使用回调自动执行此操作。即使用callback
callbacks = [
# Interrupt training if `val_loss` stops improving for over 2 epochs
tf.keras.callbacks.EarlyStopping(patience=2, monitor='val_loss'),
# Write TensorBoard logs to `./logs` directory
tf.keras.callbacks.TensorBoard(log_dir='./logs')
]
model.fit(data, labels, batch_size=32, epochs=5, callbacks=callbacks,
validation_data=(val_data, val_labels))