【深度之眼】Pytorch框架班第五期-Week4【任务2】第二节:优化器optimizer的概念

什么是优化器

在这里插入图片描述
pytorch的优化器:管理更新模型中可学习参数的值,使得模型输出更接近真实标签。
在这里插入图片描述
导数:函数在指定坐标轴上的变化率。
方向导数:指定方向上的变化率
在这里插入图片描述
梯度:一个向量,方向为方向导数取得最大值的方向。

optimizer

class Optimizer(object):
	def __init__(self, params, defaults):
		self.defaults = defaults
		self.state = defaultdict(dict)
		self.param_groups = []
		.
		.
		.
		param_groups=[{'params': param_groups}]

defaults:优化器超参数
state: 参数的缓存,如momentum的缓存
param_groups: 管理的参数组
_step_count: 记录更新次数,学习率调整中使用

基本方法

zero_grad(): 清空所管理参数的梯度
pytorch特征:张量梯度不自动清零

class Optimizer(object):
	def zero_grad(self):
		for group in self.param_groups:
			for p in group['params']:
				if p.grad is not None:
				p.grad.detach_()
				p.grad.zero_()

step(): 执行一步更新

add_param_group():添加参数组

class Optimizer(object):
	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)

state_dict():获取优化器当前状态信息字典
load_state_dict(): 加载状态信息字典
class Optimizer(object):
def state_dict(self):
return {‘state’: packed_state, ‘param_groups’: param_groups}
def load_state_dict(self, state_dict):

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值