pytorch中既自带了学习率函数,我们也可以自定义学习率调整函数。调整函数通常随epoch的变化而变化。首先实现自定义学习率调整:

自定义学习率调整

以SGDR余弦学习率调整为例:
论文地址:https://arxiv.org/abs/1608.03983


在pytorch中的训练代码:

# 第epoch值进行计算并更新学习率
def adjust_lr(optimizer, epoch, T_0=10, eta_max=0.1, eta_min=0.):if T_mul == 2:i = np.log2(epoch / T_0 + 1).astype(np.int)T_cur = epoch - T_0 * (T_mult ** (i) - 1)T_i = (T_0 * T_mult ** i)elif T_mul == 1:T_cur = epoch % T_0T_i = T_0cur_lr = eta_min + 0.5 * (eta_max - eta_min) * (1 + np.cos(np.pi * T_cur / T_i))for param_group in optimizer.param_groups:param_group['lr'] = cur_lroptimizer = optim.SGD(net.parameters(), lr=0.1, momentum=0.9, weight_decay=1e-4, nesterov=True)
for epoch in range(100):adjust_lr(optimizer, epoch)train()

Note: optimizer.param_groups保存为了优化器的参数信息,为一个列表,但是只有一个字典元素,字典里面具有参数信息。

pytorch自带的学习率函数


文档链接:https://pytorch.org/docs/stable/optim.html#torch.optim.lr_scheduler.CosineAnnealingLR

optimizer = optim.SGD(net.parameters(), lr=0.1, momentum=0.9, weight_decay=1e-4, nesterov=True)
lr_schduler = optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max=300, eta_min=0)for epoch in range(100):lr_schduler.step(epoch)train()

常用的学习率调整策略还有:

(1)torch.optim.lr_scheduler.StepLR(optimizer, step_size, gamma=0.1, las
t_epoch=-1)

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

【Pytorch】SGDR相关推荐

  1. 【金融】【pytorch】使用深度学习预测期货收盘价涨跌——全连接神经网络模型构建与训练

    [金融][pytorch]使用深度学习预测期货收盘价涨跌--全连接神经网络模型构建与训练 模型构建与训练 模型构建与训练 def get_accuracy(SR,GT,threshold=0.5):S ...

  2. 【金融】【pytorch】使用深度学习预测期货收盘价涨跌——LSTM模型构建与训练

    [金融][pytorch]使用深度学习预测期货收盘价涨跌--LSTM模型构建与训练 LSTM 创建模型 模型训练 查看指标 LSTM 创建模型 指标函数参考<如何用keras/tf/pytorc ...

  3. 【Pytorch】model.train() 和 model.eval() 原理与用法

    文章目录 一.两种模式 二.功能 1. model.train() 2. model.eval() 为什么测试时要用 model.eval() ? 3. 总结与对比 三.Dropout 简介 参考链接 ...

  4. 【PyTorch】 tensor.squeeze压缩维度

    [PyTorch] tensor.squeeze压缩维度 1.背景 2.squeeze方法 3.示例 1.背景 pytorch的tensor维度扩展.压缩是一个常见的操作, tensor维度扩展参见如 ...

  5. 【Pytorch】| Pytorch中softmax的dim的详细总结

    [Pytorch]| Pytorch中softmax的dim的详细总结 关于softmax的理解 一维向量:dim=0和dim=-1结果相同,dim=1和dim=2会报错 二维张量:dim=1和dim ...

  6. 【Pytorch】常见的人脸身份识别损失函数

    [Pytorch]常见的人脸身份识别损失函数 实验环境准备:人脸多角度多光照的图像数据集MUCT(276个受试者)+ MobileNetV3 说明:对于人脸身份数据集MUCT,是少样本数据集,应该使用 ...

  7. 【pytorch】过拟合的应对办法 —— 丢弃法(dropout)

    文章目录 一.什么是丢弃法,为什么丢弃法可以缓解过拟合? 二.丢弃法的手动实现 三.丢弃法的pytorch实现 参考 关于过拟合.欠拟合的解释可以参考我的博文:[pytorch]过拟合和欠拟合详解,并 ...

  8. 【PyTorch】03数据处理

    3 PyTorch数据处理 3.1 数据读取机制DataLoader与Dataset [PyTorch]2.1 DataLoader与Dataset epoch:对训练集的全部数据进行一次完整的训练, ...

  9. 【pytorch】——torch.hub

    [pytorch]--torch.hub Facebook官方博客表示,PyTorch Hub是一个简易API和工作流程,为复现研究提供了基本构建模块,包含预训练模型库.并且,PyTorch Hub还 ...

最新文章

  1. MySQL双主(master-master)+半同步(Semisync Replication)
  2. (转载)关于stm32编译后的代码空间和ram占用
  3. 身体容易缺少的微量元素
  4. 酷友观点/经验:支付接口返回数据接收地址,session数据丢失(或者说失效)的问题浅析(原创文章)...
  5. 【超分辨率实验】基于高斯模糊的训练数据集构建方法改进(matlab)
  6. LeetCode 371. 两整数之和(位运算加法)
  7. java @valid 密码不一致_一个成熟的Java项目如何优雅地处理异常
  8. linux mkswap -p参数,Linux基础命令---mkswap
  9. 华为P30系列机身侧面照曝光 摄像头仍然“凸起”...
  10. esayexcel下载问题
  11. Silverlight 用户代码未处理 TypeLoadException
  12. Android项目图像资源保存在,将图像从drawable保存到android中的内部文件存储
  13. Javascript特效:响应式改变页面背景颜色
  14. 视频:这不是科幻,厉害了,用人工智能修长城
  15. 10种人脉裂变技能,6个裂变核心,8个吸粉人性本能怎样玩粉丝裂变?
  16. 华为AI计算机,华为发布人工智能工程师认证(HCNA-AI),推动人工智能人才生态发展...
  17. 如何查找你的IP地址?通过IP地址能直接定位到你家!
  18. Spring框架-IOC
  19. QT去除控件被选中后的焦点虚线框
  20. 汽车控制器ECU安全校验算法实现

热门文章

  1. 一文彻底搞懂extern用法
  2. Ambari2.7.3-HDP3.0.1-Ranger版本1.1.0升级2.0.0
  3. 【强化学习论文合集】三十一.2021智能体和多智能体系统国际联合会议论文(AAMAS2021)
  4. javascript注入攻击为什么厉害
  5. CUDA安装失败的解决方法(Win10)
  6. 2021年广东省安全员B证第三批(项目负责人)找解析及广东省安全员B证第三批(项目负责人)模拟考试
  7. 外贸客户开发误解,网上很多看似专业的理论并不切实际
  8. 模拟退火算法团簇matlab,基于改进Basin-Hopping Monte Carlo算法的Fen-Ptm(5≤n+m≤24)合金团簇结构优化...
  9. cad画流程图的插件_在cad中画流程图的方法图解步骤
  10. 2021年这些高频面试知识点最后再发一次,大厂面经合集