Paddle能否指定只训练某一层的参数?
收藏
默认是每次train都把所有参数进行更新,
能否指定只更新最后全连接层的参数,或者只更新第一层的卷积网络的参数?
0
收藏
请登录后评论
可以的,把不想训练的层的ParamAttr的learning rate设为0,或者trainable设为False。
参考文档网址
https://www.paddlepaddle.org.cn/documentation/docs/zh/api_cn/fluid_cn.html#paramattr
讲解的很详细,多谢啦!
上面这个代码示例演示的是如何在创建layer的时候,设置它的param_attr。
如果是已经创建好的layer,后面是否可以修改它的param_attr?使用什么函数修改呢?
例如:
import paddle.fluid as fluid
w_param_attrs = fluid.ParamAttr(name="fc_weight",
learning_rate=0.5,
regularizer=fluid.regularizer.L2Decay(1.0),
trainable=True)
x = fluid.layers.data(name='X', shape=[1], dtype='float32')
y_predict = fluid.layers.fc(input=x, size=10, param_attr=w_param_attrs)
....
# 执行了一些其他代码之后,现在想把fc层参数的param_attr中的learning_rate。请问怎么实现呢?
非常感谢,果然逛帖子能学到好多零散的知识
动态图可以冻结这个学习率么?