优化器
管理并更新模型中可学习参数的值,使得模型输出更接近真实标签
其中:
-
管理:哪些可学习参数需要去改变
-
更新:采用梯度下降的方法去更新参数
其中:梯度——一个向量,方向为方向导数取得最大值的方法
基本属性
defaults
:优化器超参数state
:参数的缓存,如momentun
的缓存param_groups
:管理的参数组_step_count
:记录更新次数,学习率调整中使用
基本方法
zero_grad()
:清空所有管理参数的梯度step()
:执行一步更新add_param_group()
:添加参数组state_dict()
:获取优化器当前状态信息字典load_state_dict()
:加载状态信息字典
1.选择优化器
optimizer = optim.SGD(net.parameters(), lr=LR, momentum=0.9)
2.在进行反向传播前需要先将梯度清零
optimizer.zero_grad()
3.反向传播结束后,采用step()
更新参数
optimizer.step()