微信号:weixin888
**
**
参考:https://blog.csdn.net/qq_42109740/article/details/105401197
为单个参数进行优化时:
例子:
为多个参数设置不同学习率时:
例子:
这意味着model.base的参数将会使用1e-2的学习率,model.classifier的参数将会使用1e-3的学习率,并且0.9的momentum将会被用于所 有的参数。
按照更新方法,可以分为
例子:
公式:
v=ρ?v+g
p=p?lr?v = p - lr?ρ?v - lr?g
ρ是动量,v是速率,g是梯度,p是参数。
需要注意:
其他框架中:
v=ρ?v+lr?g
p=p?v = p - ρ?v - lr?g
其实差别就是在ρ?v这一项,pytorch中将此项也乘了一个学习率。
经过一个完整一轮训练后才更新以此参数,这使得梯度下降过程变得比较慢,并且需要很大内存保存中间结果。
小批量梯度下降是批量梯度下降与随机梯度下降之间的一个折中,即经过一个小批量的训练数据更新一次参数,可以保证网络训练速度不太慢,也能使训练方向不至于偏离太多,具有一定稳定性。当使用小批量梯度下降时,通常也使用SGD这个术语。
具体公式参考:https://blog.csdn.net/qq_42109740/article/details/105401197
剩下的可参考
https://pytorch.org/docs/stable/optim.html?highlight=optim#module-torch.optim