pytorch使用笔记|torch.optim模块简介(内含optimizer和lr_schedular)

本文详细介绍PyTorch中的优化器(optimizer)和学习率调度器(lr_scheduler),包括SGD和Adam等常见优化算法的使用方法及参数配置。同时介绍了如何根据不同层设置不同的学习率,并展示了如何在训练过程中调整学习率。

torch.optim是一个用于实现优化算法的包,支持常见的优化算法。本文介绍一下这个包下面的一些常见内容,如optimizer和lr_scheduler的构造和使用。

optimizer

optimizer用于根据已得到的梯度来更新网络参数。
optimizer(优化器)的构造:
构造优化器需要传入一个包含要学习参数的迭代器,此外还有一些学习策略参数如学习率等。
以常用的两个优化器SGD和Adam为例:

optimizer = optim.SGD(model.parameters(), lr=0.01, momentum=0.9)
optimizer = optim.Adam([var1, var2], lr=0.0001)

optimizer(优化器)的属性或方法:
optimizer也有state_dict(),其中包含两部分:

  1. state,是一个保持当前optimizer状态的dict,不同优化器内容不同。
  2. param_groups ,是一个list,里面有一个dict类型的param_group,param_group这个dict内部又有lr等优化器参数的键值对。
    以SGD为例,可通过下面代码查看:
#model define...
optimizer = optim.SGD(model.parameters(), lr=0.001, momentum=0.9)
for var_name in optimizer.state_dict():
    print(var_name, "\t", optimizer.state_dict()[var_name])

输出:

Optimizer's state_dict:
state    {}
param_groups     [{'lr': 0.001, 'momentum': 0.9, 'dampening': 0, 'weight_decay': 0, 'nesterov': False, 'params': [4675713712, 4675713784, 4675714000, 4675714072, 4675714216, 4675714288, 4675714432, 4675714504, 4675714648, 4675714720]}]

也可以这样来查看

optimizer=optim.Adam(model.parameters(
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值