pytorch实现查看当前学习率
作者:Mr.Jcak 时间:2022-05-29 06:02:04
在pytorch训练过程中可以通过下面这一句代码来打印当前学习率
print(net.optimizer.state_dict()['param_groups'][0]['lr'])
补充知识:Pytorch:代码实现不同层设置不同的学习率,选择性学习某些层参数
1,如何动态调整学习率
在使用pytorch进行模型训练时,经常需要随着训练的进行逐渐降低学习率,在pytorch中给出了非常方面的方法:
假设我们定义了一个优化器:
import torch
import torch.nn as nn
optimizer = torch.optim(model.parameters(), lr = 0.01, momentum = 0.9)
该优化器的初始化学习为0.01,
如果我们学习每个"n" 个epoch把学习率降低为原来的0.9倍,则需要声明一个学习率调节器:
torch.optim.lr_scheduler.StepLR(optimizer, step_size, gamma=0.1, last_epoch=-1)
其中:
optimizer: 前面声明的优化器;
step_size: 每step_size个epoch学习率降低为原来的gamma倍,
last_epoch: 当前所处的epoch
例如:
# Assuming optimizer uses lr = 0.05 for all groups
# lr = 0.05 if epoch < 30
# lr = 0.005 if 30 <= epoch < 60
# lr = 0.0005 if 60 <= epoch < 90
# ...
scheduler = StepLR(optimizer, step_size=30, gamma=0.1)
for epoch in range(100):
scheduler.step()
train(...)
validate(...)
另外其他常用的更新策略类似:
torch.optim.lr_scheduler.ExponentialLR(optimizer, gamma, last_epoch=-1)
torch.optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max, eta_min=0, last_epoch=-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)
torch.optim.lr_scheduler.LambdaLR(optimizer, lr_lambda, last_epoch=-1)
2,如何选择性学习某些参数
对于我们现有的模型model,通过调整参数的requires_grad 属性控制该模型是否参与求导运算
for name, param in model.named_parameters():
if param.requires_grad:
print("requires_grad: True ", name)
else:
print("requires_grad: False ", name)
如果模型中包含多个子模块,可用通过
sub_block = model.children()
获取该模块,然后通过迭代索引的方式获取参数:
for name, param in sub_block.named_parameters()
来源:https://blog.csdn.net/weixin_38314865/article/details/103938504
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
使用python进行拆分大文件的方法
![](https://img.aspxhome.com/file/2023/5/70815_0s.jpg)
教你使用Python的pygame模块实现拼图游戏
Python matplotlib绘图设置图例案例
![](https://img.aspxhome.com/file/2023/4/110214_0s.png)
使用Python和xlwt向Excel文件中写入中文的实例
![](https://img.aspxhome.com/file/2023/9/62589_0s.jpg)
深度学习详解之初试机器学习
![](https://img.aspxhome.com/file/2023/7/81697_0s.png)
python程序的打包分发示例详解
详解python中Numpy的属性与创建矩阵
Python button选取本地图片并显示的实例
一文带你梳理Python的中级知识
如何解决tensorflow恢复模型的特定值时出错
![](https://img.aspxhome.com/file/2023/1/91831_0s.jpg)
清理你的CSS
![](https://img.aspxhome.com/file/UploadPic/200910/6/dust-60s.jpg)
Python机器学习利用鸢尾花数据绘制ROC和AUC曲线
![](https://img.aspxhome.com/file/2023/8/123648_0s.png)
详解Python 使用 selenium 进行自动化测试或者协助日常工作
![](https://img.aspxhome.com/file/2023/1/86231_0s.png)
Python的Asyncore异步Socket模块及实现端口转发的例子
python使用openpyxl库读写Excel表格的方法(增删改查操作)
![](https://img.aspxhome.com/file/2023/3/135113_0s.png)
python b站视频下载的五种版本
python 与GO中操作slice,list的方式实例代码
聊天室php&mysql(五)
python 巡检脚本的项目实践
![](https://img.aspxhome.com/file/2023/6/109396_0s.png)