Pytorch 模块 优化器
PyTorch 中包含的优化器有:site
:需要通过优化器学习(即:优化,或训练)的参数,一般通过 传入
:学习速率,即每一 epoch 模型参数更新的程度
:权重衰减 Weight Decay
其他的参数,则根据具体的优化器而有所不同
参数组:优化器的传入参数也可以是一个 list,每个元素为 dict 类型,被称为参数组。每个 dict 用于设置优化参数,key 值为优化器的传入参数
在 list 外的参数,被称为全局参数,用于设置未指定参数的参数组
多用于模型参数微调(Fine-Tuning),只更新部分学习参数。
实例:传入参数组
:将优化器中所有待优化的 (传入优化器对象的 )的梯度归零
:执行一步优化(参数训练)过程
:添加参数组
:返回一个 dict ,包含优化器状态,以及每个参数组的具体信息
包含 2 个 key 值: 和
:返回 list 类型,每个元素为 dict 类型,表示一个参数组的具体信息
:从指定的 dict 加载参数组的具体信息
实例:
:返回 dict 类型,优化器的默认参数。默认参数不对优化器产生影响
:返回 list 类型,每个元素为一个 dict,表示一个参数组的参数信息
与 类似,但是此方法能获取学习参数的具体数值,而不是索引
:返回 list 类型,每个元素为 类,即学习参数
实例:
优化没有提供 L1 或 L2 正则化方法,但是提供了 Weight Decay 方法,可以实现 L2 正则化的效果。对于随机梯度下降法(SGD),Weight Decay 方法与 L2 正则化方法等价,但是,对于较为复杂的优化方法(比如 Adam)中,二者不完全等价(邱锡鹏,神经网络与深度学习)。
实例 1:网络模型训练实例,使用 方法
实例 2:使用梯度下降更新参数,使用 方法
训练部分学习参数,常用于模型微调(Fine-Tuning)
另外一种微调方法,将不需要改变的学习参数(或层类)自动梯度关闭,即
PyTorch 中包含的学习速度策略有:site
通用参数:
: 默认为 False;是否在每个 Epoch print 学习速率
使用 模块调整优化器的学习速率时,在定义优化器时,需要设置参数 ,表示初始的学习速率,同时 参数也不可忽略
通过 返回初始的学习速率;通过 返回当前的学习速率。
参数: 每隔 epochs, 调整为 ,如:
实例: 设置
PyTorch 官方文档, torch.optim, site
邱锡鹏,第7.7节 网络正则化, 神经网络与深度学习,机械工业出版社, 2020, Github
某某自来水业务系统,是一套适合各种规模自来水公司的网络版自来水多种类业务管理软件。根据各大自来水公司存在的问题和需求自主...
某某自来水业务系统,是一套适合各种规模自来水公司的网络版自来水多种类业务管理软件。根据各大自来水公司存在的问题和需求自主...
某某自来水业务系统,是一套适合各种规模自来水公司的网络版自来水多种类业务管理软件。根据各大自来水公司存在的问题和需求自主...
某某自来水业务系统,是一套适合各种规模自来水公司的网络版自来水多种类业务管理软件。根据各大自来水公司存在的问题和需求自主...