「Deep Learning」理解Pytorch中的「torch.optim」

Sina Weibo:小锋子Shawn
Tencent E-mail:[email protected]
http://blog.csdn.net/dgyuanshaofeng/article/details/79875283

基于pytorch 0.2.0_1版本
pytorch里面的optim文档
optim是优化算法包,包括Adadelta、Adagrad、Adam、AveragedSGD、RMSprop、SGD等。

优化算法学习
第一、SGD,文档在此,SGD,代码在此,SGD

class torch.optim.SGD(params, lr=, momentum=0,
dempening=0, weight_decay=0, nesterov=False) 
  

Nesterov momentum版本的SGD也可以执行,该优化算法的介绍,在此,Nesterov。
params - 可迭代的,通常是args = get_arguments()和model.parameters()/model.optim_parameters(args)配合使用。
lr - 学习率或步长,无默认值,说明必须由用户指定。
momentum - 冲量项因子,默认值为0,通常设置0.9。
weight_decay - 权重衰减项因子,默认值为0,通常设置千分之五或者万分之五。
nesterov - nesterov开关,默认为False。
使用如下:

optimizer = torch.optim.SGD(model.parameters(), lr=0.1, momentum=0.9)
optimizer.zero_grad() # clears the gradients of all optimized **Variable** s.
loss_fn(model(input), target).backward()
optimizer.step() # performs a single optimization step.

第二,Adam,文档在此,Adam,代码在此,Adam

class torch.optim.Adam(params, lr=0.001, betas=(0.9, 0.999),
eps=1e-08, weight_decay=0)

params - 同上。
lr - 同上,但是默认值为千分之一。
betas - Adam优化算法中的超参数,分别表示用于计算梯度及其平方(梯度强度)均值的系数。
eps - 分母中的小数,提升计算稳定性。
weight_decay - 同上。

你可能感兴趣的:(「Deep Learning」理解Pytorch中的「torch.optim」)