定义学习率之后,经过一定epoch迭代之后,模型效果不再提升,该学习率可能已经不再适应该模型。需要在训练过程中缩小学习率,进而提升模型。使用keras中的回调函keras.callbacks.ReduceLROnPlateau可以实现此效果,
具体语法:
from keras.callbacks import ReduceLROnPlateau
reduceLr = ReduceLROnPlateau(monitor='val_loss', factor=0.9, patience=50,verbose=1,
mode='auto', epsilon=0.0001, cooldown=0, min_lr=0.0001)
参数说明:
monitor:监测的值,可以是accuracy,val_loss,val_accuracy。
factor:缩放学习率的值,学习率将以lr = lr*factor的形式被减少
patience:当patience个epoch过去而模型性能不提升时,学习率减少的动作会被触发
verbose: 整数。0:安静,1:更新信息。
mode:‘auto’,‘min’,‘max’之一 默认‘auto’就行.如果是min模式,如果被监测的数据已经停止下降,学习速率会被降低;在max模式,如果被监测的数据已经停止上升,学习速率会被降低;在auto模式,方向会被从被监测的数据中自动推断出来。
epsilon&#