pytorch学习笔记十:torch.optim下的优化算法的使用方法详解

更新时间:2023-07-14 16:21:21 阅读: 评论:0

pytorch学习笔记⼗:torch.optim下的优化算法的使⽤⽅法详解
初级教师这⾥,我们不对每⼀个具体的优化算法做解释,只是对torch.optim下的算法的使⽤⽅法以及有哪些属性做⼀下说明。
⼀、torch.optim
torch.optim是⼀个实现了各种优化算法的库。⼤部分常⽤的⽅法得到⽀持,并且接⼝具备⾜够的通⽤性,使得未来能够集成更加复杂的⽅法。
⼆、如何使⽤optimizer
为了使⽤torch.optim,你需要构建⼀个optimizer对象。这个对象能够保持当前参数状态并基于计算得到的梯度进⾏参数更新。
构建:为了构建⼀个Optimizer,你需要给它⼀个包含了需要优化的参数(必须都是Variable对象)的iterable。然后,你可以设置optimizer的参数选项,⽐如学习率,权重衰减,等等。
optimizer = optim.SGD(model.parameters(), lr =0.01,
momentum=0.9)
optimizer = optim.Adam([var1, var2], lr =0.0001)
为每个参数单独设置选项:Optimizer也⽀持为每个参数单独设置选项。若想这么做,不要直接传⼊Variable的iterable,⽽是传⼊dict的iterable。每⼀个dict都分别定义了⼀组参数,并且包含⼀个param键,这个键对应参数的列表。其他的键应该optimizer所接受的其他参数的关键字相匹配,并且会被⽤于对这组参数的优化。
平方怎么计算方法
例如,当我们想指定每⼀层的学习率时,这是⾮常有⽤的:
optim.SGD([
{'params': model.ba.parameters()},
{'params': model.classifier.parameters(),'lr':1e-3}],
lr=1e-2, momentum=0.9)
这意味着model.ba的参数将会使⽤1e-2的学习率,model.classifier的参数将会使⽤1e-3的学习率,并且0.9的momentum将会被⽤于所有的参数。两个火一个安
进⾏单次优化:所有的optimizer都实现了step()⽅法,这个⽅法会更新所有的参数。它能按两种⽅式来使⽤:
1、optimizer.step():
这是⼤多数optimizer所⽀持的简化版本。⼀旦梯度被如backward()之类的函数计算好后,我们就可以调⽤这个函数。
for input, target in datat:
<_grad()
output = model(input)
loss = loss_fn(output, target)
loss.backward()
optimizer.step()
2、optimizer.step(closure):
装修委托书怎么写
⼀些优化算法例如Conjugate Gradient和LBFGS需要重复多次计算函数,因此你需要传⼊⼀个闭包去允许它们重新计算你的模型。这个闭包应当清空梯度, 计算误差,然后返回。
for input, target in datat:
def closure():
家庭炒菜<_grad()
output = model(input)
loss = loss_fn(output, target)
热汤面怎么做loss.backward()
return loss
optimizer.step(closure)
三、这些optimizer都有哪些属性
.
load_state_dict(state_dict):加载optimizer的状态,state_dict是⼀个状态字典,是.state_dict()属性的返回值
踏上河.state_dict():以dict返回optimizer的状态
它包含两项:
state- ⼀个保存了当前优化状态的dict。optimizer的类别不同,state的内容也会不同
param_groups - ⼀个包含了全部参数组的dict
{'state':{},
'param_groups':[{'lr':0.03,'momentum':0,
'dampening':0,'weight_decay':0,
招标文件范本'nesterov':Fal,
'params':[2371287067888,2371287067528]}]}
.
step(closure):进⾏单次优化 (参数更新);closure (callable) 是⼀个重新评价模型并返回loss的闭包,对于⼤多数参数来说是可选的.zero_grad():清空所有被优化过的Variable的梯度

本文发布于:2023-07-14 16:21:21,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1096417.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:参数   优化   状态   计算   梯度   能够   选项
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图