https://zhuanlan.zhihu.com/p/524650878
10 ReduceLROnPlateau
当指标停止改进时降低学习率。 一旦学习停滞,模型通常会受益于将学习率降低 2-10 倍。 该调度程序读取一个指标数量,如果“patience”的 epoch 数量没有改善,则学习率会降低。
torch.optim.lr_scheduler.ReduceLROnPlateau(optimizer, mode='min', factor=0.1, patience=10, threshold=0.0001, threshold_mode='rel', cooldown=0, min_lr=0, eps=1e-08, verbose=False)Args:optimizer (Optimizer):优化器mode (str):'min'模式检测metric是否不再减小,'max'模式检测metric是否不再增大;Default: 'min'.factor (float): r 学习率每次降低多少. new_lr = lr * factor. Default: 0.1.patience (int): 容忍网络的性能不提升的次数,高于这个次数就降低学习率. Default: 10.threshold (float): 测量新最佳值的阈值,仅关注重大变化. Default: 1e-4.threshold_mode (str): 有rel和abs两种阈值计算模式.rel规则:dynamic_threshold = best * ( 1 + threshold ) in 'max' mode;best * ( 1 - threshold ) in `min` mode.abs规则:dynamic_threshold = best + threshold in `max` mode ;best - threshold in `min` mode. cooldown (int): 减少lr后恢复正常操作之前要等待的时期数. Default: 0.min_lr (float or list): 学习率的下限. Default: 0.eps (float): 适用于lr的最小衰减。 如果新旧lr之间的差异小于eps,则忽略更新。. Default: 1e-8.verbose (bool): If `True`, prints a message to stdout for each update. Default: `False`.