提前停止的作用

提前停止(英语:early stopping)是一种在使用诸如梯度下降之类的迭代优化方法时,可对抗过拟合的正则化方法。官方说明文档中的一句话:当监视指标停止改进时,停止训练。

实现

基于tensorflow平台。
继承自: Callback

#导入
from keras.callbacks import EarlyStopping

定义相关参数:

monitor = EarlyStopping(monitor='val_loss', min_delta=1e-3, patience=5, verbose=1, mode='auto')

使用model.compile()传递相关僵尸指标
列:

model.compile(loss='mean_squared_error', optimizer='adam')

使用:

model.fit(x_train,y_train,callbacks = [monitor],validation_data=(x_test,y_test),epochs=1000)

montier相关参数说明:
官网参数解释
1、monitor: 被监测的数据。
2、min_delta: 在被监测的数据中被认为是提升的最小变化, 例如,小于 min_delta 的绝对变化会被认为没有提升。
3、patience: 在监测质量经过多少轮次没有进度时即停止。如果验证频率 (model.fit(validation_freq=5)) 大于 1,则可能不会在每个轮次都产生验证数。
4、verbose: 详细信息模式,0或1。
5、mode: {auto, min, max} 其中之一。 在 min 模式中, 当被监测的数据停止下降,训练就会停止;在 max 模式中,当被监测的数据停止上升,训练就会停止;在 auto 模式中,方向会自动从被监测的数据的名字中判断出来。
6、baseline: 要监控的数量的基准值。 如果模型没有显示基准的改善,训练将停止。
7、restore_best_weights: 是否从具有监测数量的最佳值的时期恢复模型权重。 如果为 False,则使用在训练的最后一步获得的模型权重。

更多请访问:https://www.tensorflow.org/api_docs/python/tf/keras/callbacks/EarlyStopping

更多推荐