- 什么是优化器
- optimizer的属性
- optimizer的方法
- learning rate 学习率
- momentum动量
- torch.optim.SGD
- PyTorch的十种优化器
一、优化器
pytorch的优化器:管理并更新模型中可学习参数的值,使得模型输出更接近真实标签
导数:函数在指定坐标轴上的变化率
方向导数:指定方向上的变化率
梯度:一个向量,方向:方向导数取得最大值的方向
class Optimizer(object):
def __init__(self, params, defaults):
self.defaults = defaults
self.state = defaultdict(dict)
self.param_groups = []
param_groups = [{'params': param_groups}]
- 基本属性
def add_param_group(self, param_group):
for group in self.param_groups:
param_set.update(set(group['params’]))
self.param_groups.append(param_group)
def state_dict(self):
# ...
return {
'state': packed_state,
'param_groups': param_groups,
}
def load_state_dict(self, state_dict):
# ...
```
- 基本方法
zero_grad()
:清空所管理参数的梯度- pytorch特性:张量梯度不自动清零
step()
:执行一步更新add_param_group()
:添加参数组state_dict()
:获取优化器当前状态信息字典load_state_dict()
:加载状态信息字典