torch.optim优化器

基本使用方法

import optim
ptimizer=optim.SGD(params=net.parameters(),lr=0.1)
optimizer.zero_grad()  //梯度清零
​
output=net(input)
output.backward(output)
optimizer.step()
 import torch.optim as optim
#定义了网络
netG = net.dehaze(inputChannelSize, outputChannelSize, ngf)

optimizerG = optim.Adam(netG.parameters(), lr = opt.lrG, betas = (opt.beta1, 0.999), weight_decay=0.00005)

optimizer通过param_group来管理参数组.param_group中保存了参数组及其对应的学习率,动量等等.所以我们可以通过更改param_group[‘lr’]的值来更改对应参数组的学习率。

看看optimizerG .param_groups[0]到底有什么:

for content in optimizerG.param_groups[0]:
    print(content)

输出adam的相关参数

params
lr
betas
eps
weight_decay
amsgrad
optimizerD.param_groups[0]['betas']
Out[30]: (0.5, 0.999)

ref
https://www.cnblogs.com/hellcat/p/8496727.html
https://www.pytorchtutorial.com/pytorch-learning-rate-decay/

猜你喜欢

转载自blog.csdn.net/qq_35608277/article/details/85725379
今日推荐