首页 > 其他分享 >pytorch中学习率的调整方法

pytorch中学习率的调整方法

时间:2023-02-20 21:44:34浏览次数:40  
标签:plt optimizer self epoch 学习 pytorch lr scheduler 方法

一、手动法

二、利用lr_scheduler()提供的集中衰减函数

2.1 利用lr_lambda函数

具体使用:

from torch.optim import SGD, lr_scheduler
import matplotlib.pyplot as plt
from torch.nn import Module, Sequential, Linear, CrossEntropyLoss


# 定义网络模型
class model(Module):
def __init__(self):
super(model, self).__init__()
self.fc = Sequential(
Linear(1,10)
)

def forward(self, input):
output = self.fc(input)
return output

# 初始化网络模型
Model = model()
# 定义损失函数
Loss = CrossEntropyLoss()
# 创建优化器
lr = 0.01
optimizer = SGD(Model.parameters(), lr=lr)
# 定义一个list保存学习率
lr_list = []

# 定义学习率与轮数关系的函数
lambda1 = lambda epoch:0.95 ** epoch # 学习率 = 0.95**(轮数)
scheduler = lr_scheduler.LambdaLR(optimizer,lr_lambda = lambda1)

for epoch in range(100):
print("epoch={}, lr={}".format(epoch, optimizer.state_dict()['param_groups'][0]['lr']))
scheduler.step()
lr_list.append(optimizer.state_dict()['param_groups'][0]['lr'])

plt.plot(range(100),lr_list,color = 'r',label = 'LambdaLR')
plt.ylabel('learning rate')
plt.xlabel('epoch')
plt.legend()
plt.show()

标签:plt,optimizer,self,epoch,学习,pytorch,lr,scheduler,方法
From: https://www.cnblogs.com/chenallens/p/17139042.html

相关文章

  • javaweb学习
    EL语言${}<c:iftest="{brand.status==1}"><td>启用</td></c:if>//判断<cforEach:items="${brands}" var="brand"varStatus="status"><td>${status.count}</td>......
  • 构造题学习笔记
    抽屉原理在构造题中,若我们遇到了\(n/k\)这样的操作次数的时候,可以考虑将所有数划分为\(k\)个集合。这样,最小的那个集合的大小就一定小于等于\(n/k\)了。CF1198C给......
  • 华为eNSP学习笔记
    严正声明:全篇内容为原创内容,版权归属博客园用户Hmi1234所有,仅供学习和参考,未经允许严禁转载!网络组建与应用第1章华为VRP系统基本操作1.0.1用户视图(查看命令)......
  • 图卷积神经网络分类的pytorch实现
    图神经网络(GNN)目前的主流实现方式就是节点之间的信息汇聚,也就是类似于卷积网络的邻域加权和,比如图卷积网络(GCN)、图注意力网络(GAT)等。下面根据GCN的实现原理使用Pytorch......
  • 【博学谷学习记录】超强总结,用心分享 | this/call/apply/bind
    this的指向问题在绝大多数情况下,函数的调用方式决定了 this 的值(运行时绑定)。this 不能在执行期间被赋值,并且在每次函数被调用时 this 的值也可能会不同。简单例子......
  • 2023年2月20日软件工程学习总结
    今天上课更加清楚的认识到了自学的方法的重要性,最后一节课留下来做测试,由于之前的主客观原因只是在网络上查找了一些模板去完成向数据库添加数据的操作,但没能实现数据库的......
  • 由于找不到mfc140u.dll,无法继续执行代码的解决方法
    下载dll丢失文件第一步打开电脑浏览器上方输入【​​dll修复程序.site​​】进入后点击安装dll文件点击下载mfc140u.dll文件;下载好了需要进行解压。然后打开后点击开始检测,......
  • Vue学习随笔(一)Vue的引入
    前言以往零零散散使用过一些Vue的语法,最近才刚刚系统接触Vue,现在是刚刚入门的状态,故在这里做一个记录和梳理,欢迎大家一起学习交流,有错误的地方也欢迎大家指正。正篇梦开......
  • 机器学习技术系列:【机器学习工程化平台 Kubeflow】简介
    导言如今,很多科技企业都投入了对机器学习技术的研究和应用中。但是面临的情况可能是组织已经在本地使用机器学习,但还不能够将其部署到生产环境中;或者能够部署模型,但无法对......
  • 数据类型-列表list-内置方法
    定义在[]内,用逗号分隔开多个任意数据类型的值l1=[1,'a',[1,2]]#本质:l1=list([1,'a',[1,2]])类型转换但凡能被for循环遍历的数据类型都可以传给list()转换成......