开始使用免费开始使用

早停法:把优化做"刚刚好"

既然您已经知道如何在优化过程中监控模型性能,就可以使用早停法在继续优化无益时自动停止。由于在无提升时会自动停止,正如 Dan 在视频中演示的那样,您也可以在 .fit() 调用中将 epochs 设为较大的值。

要优化的模型已定义为 model。与之前一样,数据已预加载为 predictorstarget

本练习是课程的一部分

Python 深度学习入门

查看课程

练习说明

  • tensorflow.keras.callbacks 导入 EarlyStopping
  • 编译模型,仍然使用 'adam' 作为 optimizer'categorical_crossentropy' 作为损失函数,并设置 metrics=['accuracy'] 以在每个 epoch 查看准确率。
  • 创建名为 early_stopping_monitorEarlyStopping 对象。通过将 EarlyStopping()patience 参数设为 2,在验证集损失 2 个 epoch 未提升时停止优化。
  • 使用 predictorstarget 拟合模型。将 epochs 设为 30,并使用 0.3 的验证集划分。此外,将 [early_stopping_monitor] 传入 callbacks 参数。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Import EarlyStopping
____

# Save the number of columns in predictors: n_cols
n_cols = predictors.shape[1]
input_shape = (n_cols,)

# Specify the model
model = Sequential()
model.add(Dense(100, activation='relu', input_shape = input_shape))
model.add(Dense(100, activation='relu'))
model.add(Dense(2, activation='softmax'))

# Compile the model
____

# Define early_stopping_monitor
early_stopping_monitor = ____

# Fit the model
____
编辑并运行代码