Pytorch_Part5_迭代训练

本文详细介绍了PyTorch中学习率的调整策略,包括StepLR、MultiStepLR、ExponentialLR和CosineAnnealingLR。同时,讲解了如何使用ReduceLROnPlateau自适应调整学习率。此外,还探讨了TensorBoard的可视化功能,如标量、直方图、卷积核和特征图的可视化。最后,提到了Hook函数的应用以及CAM可视化的实现。
摘要由CSDN通过智能技术生成

一、学习率调整策略

梯度下降: w i + 1 = w i − L R ∗ g ( w i ) w_{i+1} = w_i-LR *g(w_i) wi+1=wiLRg(wi),学习率(learning rate)控制更新的步伐

pytorch中所有学习率控制都继承与class _LRScheduler

主要属性及函数:

  • optimizer:关联的优化器
  • last_epoch:记录epoch数
  • base_lrs:记录初始学习率
  • step():更新下一个epoch的学习率
  • get_lr():虚函数,计算下一个epoch的学习率
scheduler = torch.optim.lr_scheduler.StepLR(optimizer, step_size=10, gamma=0.1)     # 设置学习率下降策略
for epoch in range(MAX_EPOCH):
  	...
  	for i, data in enumerate(train_loader):
    	...
  	scheduler.step()  # 更新学习率,注意在每个epoch调用,而不是每个iteration

1. 有序调整——Step, MultiStep, Exponential & CosineAnnealing

StepLR
功能:等间隔调整学习率
主要参数:
• step_size:调整间隔数
• gamma:调整系数
l r = l r 0 ∗ g a m m a ∗ ∗ ( e p o c h / / s t e p _ s i z e ) lr = lr_0 * gamma**(epoch//step\_size) lr=lr0gamma(epoch//step_size)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CuWpEkVD-1583675300081)()]

MultiStepLR
功能:按给定间隔调整学习率
主要参数:
• milestones:设定调整时刻数
• gamma:调整系数
l r = l r ∗ g a m m a lr = lr * gamma lr=lrgamma

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-scmFaagd-1583675300083)()]

ExponentialLR
功能:按指数衰减调整学习率
主要参数:
• gamma:指数的底
l r = l r 0 ∗ g a m m a ∗ ∗ e p o c h lr = lr_0 * gamma**epoch lr=lr0

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值