我们想将pytorch的实现转化为paddle。想要实现的效果是在训练过程中,网络(ResNet-50)的FC层和之前的卷积层分开设置不同的学习率,并且用cosine annealing的schedule动态调节。相关pytorch的代码如下
其中133行和134行所用的optimizer的信息如下:
请问paddle中有哪个方法可以实现这个目标?谢谢!
环境信息:
paddlepaddle-gpu 1.8.1.post107
cudnn 7.6.5
python 3.7.5
Driver Version: 440.44
CUDA Version: 10.2
4条答案
按热度按时间igsr9ssn1#
https://www.paddlepaddle.org.cn/documentation/docs/zh/api_cn/fluid_cn/ParamAttr_cn.html#paramattr
可以通过learning_rate设置单个ParamAttr的学习率的比例
nwnhqdif2#
已尝试使用ParamAttr设置单层learning_rate的值,但这个方法要求 learning_rate的赋值必须是一个 float。如下面的报错信息所示:
TypeError: The type of 'learning_rate' in ParamAttr must be (<class 'float'>, <class 'int'>), but received <class 'paddle.fluid.framework.Variable'>.
期望是将网络其中一层结构设置成cosine_decay这样的随着网络训练动态变化的学习率。请问有什么建议吗?
fdx2calv3#
呃,这个目前还无法实现~
up9lanfz4#
谢谢回答,希望以后的版本中可以添加这样的功能