一、 torch.optim.SGD 随机梯度下降
该类可实现 SGD 优化算法,带动量 的SGD 优化算法和带 NAG(Nesterov accelerated gradient)的 SGD 优化算法,并且均可拥有 weight_decay(权重衰减) 项。
1.SGD代码
'''
params(iterable)- 参数组,优化器要优化的那部分参数。
lr(float)- 初始学习率,可按需随着训练过程不断调整学习率。
momentum(float)- 动量,通常设置为 0.9,0.8
dampening(float)- dampening for momentum ,暂时不了其功能,在源码中是这样用的:buf.mul_(momentum).add_(1 - dampening, d_p),值得注意的是,若采用nesterov,dampening 必须为 0.
weight_decay(float)- 权值衰减系数,也就是 L2 正则项的系数
nesterov(bool)- bool 选项,是否使用 NAG(Nesterov accelerated gradient)
'''
class torch.optim.SGD(params, lr=<object object>, momentum=0, dampening=0, weight_decay=0, nesterov=False)
2.基本思路
在每个训练样本上计算梯度并更新权重,因此也被称为在线学习。
在SGD中,模型的参数向负梯度方向更新,使得损失函数的值逐渐减少。具体来说,每个训练样本的误差对每个参数的

最低0.47元/天 解锁文章
4150

被折叠的 条评论
为什么被折叠?



