【Pytorch】SGDR
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)
- step_size(int)- 学习率下降间隔数,若为 30,则会在 30、 60、 90…个 step 时,将学习率调整为 lr*gamma。
- gamma(float)- 学习率调整倍数,默认为 0.1 倍,即下降 10 倍。
- last_epoch:表示上一轮是那个,接着上一轮继续开始
(2)torch.optim.lr_scheduler.MultiStepLR(optimizer, milestones, gamma
=0.1, last_epoch=-1)
【Pytorch】SGDR相关推荐
- 【金融】【pytorch】使用深度学习预测期货收盘价涨跌——全连接神经网络模型构建与训练
[金融][pytorch]使用深度学习预测期货收盘价涨跌--全连接神经网络模型构建与训练 模型构建与训练 模型构建与训练 def get_accuracy(SR,GT,threshold=0.5):S ...
- 【金融】【pytorch】使用深度学习预测期货收盘价涨跌——LSTM模型构建与训练
[金融][pytorch]使用深度学习预测期货收盘价涨跌--LSTM模型构建与训练 LSTM 创建模型 模型训练 查看指标 LSTM 创建模型 指标函数参考<如何用keras/tf/pytorc ...
- 【Pytorch】model.train() 和 model.eval() 原理与用法
文章目录 一.两种模式 二.功能 1. model.train() 2. model.eval() 为什么测试时要用 model.eval() ? 3. 总结与对比 三.Dropout 简介 参考链接 ...
- 【PyTorch】 tensor.squeeze压缩维度
[PyTorch] tensor.squeeze压缩维度 1.背景 2.squeeze方法 3.示例 1.背景 pytorch的tensor维度扩展.压缩是一个常见的操作, tensor维度扩展参见如 ...
- 【Pytorch】| Pytorch中softmax的dim的详细总结
[Pytorch]| Pytorch中softmax的dim的详细总结 关于softmax的理解 一维向量:dim=0和dim=-1结果相同,dim=1和dim=2会报错 二维张量:dim=1和dim ...
- 【Pytorch】常见的人脸身份识别损失函数
[Pytorch]常见的人脸身份识别损失函数 实验环境准备:人脸多角度多光照的图像数据集MUCT(276个受试者)+ MobileNetV3 说明:对于人脸身份数据集MUCT,是少样本数据集,应该使用 ...
- 【pytorch】过拟合的应对办法 —— 丢弃法(dropout)
文章目录 一.什么是丢弃法,为什么丢弃法可以缓解过拟合? 二.丢弃法的手动实现 三.丢弃法的pytorch实现 参考 关于过拟合.欠拟合的解释可以参考我的博文:[pytorch]过拟合和欠拟合详解,并 ...
- 【PyTorch】03数据处理
3 PyTorch数据处理 3.1 数据读取机制DataLoader与Dataset [PyTorch]2.1 DataLoader与Dataset epoch:对训练集的全部数据进行一次完整的训练, ...
- 【pytorch】——torch.hub
[pytorch]--torch.hub Facebook官方博客表示,PyTorch Hub是一个简易API和工作流程,为复现研究提供了基本构建模块,包含预训练模型库.并且,PyTorch Hub还 ...
最新文章
- MySQL双主(master-master)+半同步(Semisync Replication)
- (转载)关于stm32编译后的代码空间和ram占用
- 身体容易缺少的微量元素
- 酷友观点/经验:支付接口返回数据接收地址,session数据丢失(或者说失效)的问题浅析(原创文章)...
- 【超分辨率实验】基于高斯模糊的训练数据集构建方法改进(matlab)
- LeetCode 371. 两整数之和(位运算加法)
- java @valid 密码不一致_一个成熟的Java项目如何优雅地处理异常
- linux mkswap -p参数,Linux基础命令---mkswap
- 华为P30系列机身侧面照曝光 摄像头仍然“凸起”...
- esayexcel下载问题
- Silverlight 用户代码未处理 TypeLoadException
- Android项目图像资源保存在,将图像从drawable保存到android中的内部文件存储
- Javascript特效:响应式改变页面背景颜色
- 视频:这不是科幻,厉害了,用人工智能修长城
- 10种人脉裂变技能,6个裂变核心,8个吸粉人性本能怎样玩粉丝裂变?
- 华为AI计算机,华为发布人工智能工程师认证(HCNA-AI),推动人工智能人才生态发展...
- 如何查找你的IP地址?通过IP地址能直接定位到你家!
- Spring框架-IOC
- QT去除控件被选中后的焦点虚线框
- 汽车控制器ECU安全校验算法实现
热门文章
- 一文彻底搞懂extern用法
- Ambari2.7.3-HDP3.0.1-Ranger版本1.1.0升级2.0.0
- 【强化学习论文合集】三十一.2021智能体和多智能体系统国际联合会议论文(AAMAS2021)
- javascript注入攻击为什么厉害
- CUDA安装失败的解决方法(Win10)
- 2021年广东省安全员B证第三批(项目负责人)找解析及广东省安全员B证第三批(项目负责人)模拟考试
- 外贸客户开发误解,网上很多看似专业的理论并不切实际
- 模拟退火算法团簇matlab,基于改进Basin-Hopping Monte Carlo算法的Fen-Ptm(5≤n+m≤24)合金团簇结构优化...
- cad画流程图的插件_在cad中画流程图的方法图解步骤
- 2021年这些高频面试知识点最后再发一次,大厂面经合集