当前位置:网站首页>torch optimizer小解析

torch optimizer小解析

2022-07-06 22:49:00 构建的乐趣

我是按torch 1.11版本写的:

以sgd为例:

在这里插入图片描述

在这里插入图片描述

里面的maximize = group[‘maximize’]说明了maxmize参数可以分group指定。当然也可以全局使用,并且maxmize是sgd独有的(截至1.11版本)
注意,其他版本的优化器如adam,我没看到maxmize参数。想要执行梯度上升,我想的办法是重写优化器。

注意,self.param_groups是一个列表,是在基类中定义的,sgd里找不到。由上面的图片可知,sgd是按self.param_groups对各个params进行梯度优化(上升或下降)

注意sgd init方法中的defaults变量,这是要给基类init方法的。有关super,可以看看b站一个视频,讲的非常细:
在这里插入图片描述

回到基类,注意下图的defaults注释:

在这里插入图片描述
后面用了字典的setdefault方法来将全局默认defaults给每个group:
在这里插入图片描述

原网站

版权声明
本文为[构建的乐趣]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_44065334/article/details/125642327