一般来说机器学习的训练次数会设置到很大,如果模型的表现没有进一步提升,那么训练可以停止了,继续训练很可能会导致过拟合
keras.callbacks.EarlyStopping
就是用来提前结束训练的。
在keras中,使用方法如下:
import keras
early_stopping=keras.callbacks.EarlyStopping(monitor='val_loss', min_delta=0,
patience=0, verbose=0, mode='auto',
baseline=None, restore_best_weights=False)
model.fit(callbacks = [early_stopping])
TensorFlow的使用方法差不多:
import tensorflow as tf
early_stopping=tf.keras.callbacks.EarlyStopping(monitor='val_loss', min_delta=0,
patience=0, verbose=0, mode='auto',
baseline=None, restore_best_weights=False)
model.fit(callbacks = [early_stopping])
参数介绍:
monitor
: 被监测的数据。
min_delta
: 在被监测的数据中被认为是提升的最小变化, 例如,小于 min_delta 的绝对变化会被认为没有提升。
patience
: 没有进步的训练轮数,在这之后训练就会被停止。
verbose
: 详细信息模式。
mode
: {auto, min, max} 其中之一。 在 min 模式中, 当被监测的数据停止下降,训练就会停止;在 max 模式中,当被监测的数据停止上升,训练就会停止;在 auto 模式中,方向会自动从被监测的数据的名字中判断出来。
baseline
: 要监控的数量的基准值。 如果模型没有显示基准的改善,训练将停止。
restore_best_weights
: 是否从具有监测数量的最佳值的时期恢复模型权重。 如果为 False,则使用在训练的最后一步获得的模型权重。
文档信息
- 本文作者:last2win
- 本文链接:https://last2win.com/2019/06/05/keras/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)