关于loss与学习率

学习率与损失

1 名词解释

loss,即损失。
lr,即学习率。

2 loss

每一个batch(批次)里都有一个loss_all

train_losses 则是汇集了当前epoch中所有的loss_all

train_loss 是当前epoch对应的train_losses的平均train_losses

avg_train_losses 则是汇集了所有的train_loss

2.1 loss代码示例

train_losses.append(loss_all.item())#每个batch里面的损失
    train_loss = np.average(train_losses)#每个epoch里面的平均损失
    avg_train_losses.append(train_loss)#每个epoch里面的平均总损失

3 学习率调整方式

Pytorch中的学习率调整有两种方式:

1.直接修改optimizer中的lr参数;
2.利用lr_scheduler()提供的几种衰减函数

下面介绍第二种:利用lr_scheduler()提供的几种衰减函数。

1. torch.optim.lr_scheduler.ReduceLROnPlateau(optimizer, mode='min', factor=0.1, patience=10, verbose=False, threshold=0.0001, threshold_mode='rel', cooldown=0, min_lr=0, eps=1e-08)

在发现loss不再降低或者acc不再提高之后,降低学习率。各参数意义如下:

  • mode:'min’模式检测metric是否不再减小,'max’模式检测metric是否不再增大;
  • factor: 触发条件后lr=lr*factor;
  • patience:不再减小(或增大)的累计次数;
    - verbose:触发条件后print;
    • threshold:只关注超过阈值的显著变化;
    • threshold_mode:有rel和abs两种阈值计算模式,rel规则:max模式下如果超过best(1+threshold)为显著,min模式下如果低于best(1-threshold)为显著;abs规则:max模式下如果超过best+threshold为显著,min模式下如果低于best-threshold为显著;
    • cooldown:触发一次条件后,等待一定epoch再进行检测,避免lr下降过速;
    • min_lr:最小的允许lr;
      - eps:如果新旧lr之间的差异小与1e-8,则忽略此次更新。
2 torch.optim.lr_scheduler.StepLR(optimizer, step_size, gamma=0.1, last_epoch=-1)

每个一定的epoch,lr会自动乘以gamma

3 torch.optim.lr_scheduler.MultiStepLR(optimizer, milestones, gamma=0.1, last_epoch=-1)

三段式lr,epoch进入milestones范围内即乘以gamma,离开milestones范围之后再乘以gamma

4 torch.optim.lr_scheduler.ExponentialLR(optimizer, gamma, last_epoch=-1)

每个epoch中lr都乘以gamma

5 torch.optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max, eta_min=0, last_epoch=-1)

T_max 对应1/2个cos周期所对应的epoch数值

eta_min 为最小的lr值,默认为0

6  torch.optim.lr_scheduler.LambdaLR(optimizer, lr_lambda, last_epoch=-1)

lr_lambda 会接收到一个int参数:epoch,然后根据epoch计算出对应的lr。如果设置多个lambda函数的话,会分别作用于Optimizer中的不同的params_group

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值