Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

求问paddle v2怎么在训练时固定某些节点的参数使之不被更新 #3565

Closed
JayEworld opened this issue Aug 18, 2017 · 5 comments
Labels
User 用于标记用户问题

Comments

@JayEworld
Copy link

我大概有这样的需求:
跑第一个pass的时候,只更新稀疏特征的参数,学习这部分特征的规律
跑第二个pass的时候,加入稠密特征,之前学习到的稀疏特征的参数不再被更新
求问应该怎么搞呢

@Xreki
Copy link
Contributor

Xreki commented Aug 18, 2017

每个layer的参数可以设置自己的learning_rate,可将不希望更新的layer的参数的学习率设置成0,比如:

fc_para_attr = paddle.attr.Param(learning_rate=0.)
fc1 = paddle.layer.fc(
            input=inputs,
            size=hid_dim,
            act=linear,
            param_attr=fc_para_attr,
            )

关于学习率设置的详情,可参考#3302

@lcy-seso lcy-seso added the User 用于标记用户问题 label Aug 20, 2017
@JayEworld
Copy link
Author

@Xreki 感谢回答。我现在清楚怎么设置不同层的learning rate了。
但是,# 貌似还是不能根据不同pass设置不同的学习率
我其实是想:
跑第一个pass的时候,只更新稀疏特征的参数,学习这部分特征的规律
跑第二个pass的时候,加入稠密特征,之前学习到的稀疏特征的参数不再被更新
请问这有什么方法吗?

@luotao1
Copy link
Contributor

luotao1 commented Aug 21, 2017

学习过的参数不再更新,可以使用param_attr = ParamAttr(is_static=True)来设置。
那么只要控制is_static在第二个Pass变成True即可。

@JayEworld
Copy link
Author

@luotao1 还是没太明白,网络结构包括param_attr,学习率,不是在训练之前就定义好的吗?怎么根据不同的pass设置不同的param_attr呢?

@typhoonzero
Copy link
Contributor

暂时关闭此Issue了,如果仍存在问题,可以reopen

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
User 用于标记用户问题
Projects
None yet
Development

No branches or pull requests

5 participants