其他分享
首页 > 其他分享> > pytorch自定义各层学习率

pytorch自定义各层学习率

作者:互联网

写了一下午的代码,总结一下,方便后人必坑

网络上有部分代码未正确地使用了filter,请出现错误的同学仿照我的代码实现该功能。

pytorch optimizer支持传入params参数,以完成不同的网络层可以选取不同的学习率。
用到的两个函数分别为map(获取parameter_id)、filter (筛选)
直接上代码:

# 想要特殊lr的网络层, **改为网络层名称
zsj_lr_param = list(map(id, net.**.parameters()))
# 其他网络层统一参数
other_lr_param = list(filter(lambda x: id(x) not in zsj_lr_param, net.parameters())
# 传入参数, 请注意第一行写法
params = [{'params':net.**.parameters(), 'lr':1e-1},
{'params':other_lr_param , 'lr':1e-2}]
optimizer = torch.optim.Adam()

标签:自定义,网络层,各层,param,pytorch,lr,params,net,id
来源: https://blog.csdn.net/DanielZzzsj/article/details/116756462