已解决
不同层设置不同学习率
来自网友在路上 146846提问 提问时间:2023-09-22 05:51:20阅读次数: 46
最佳答案 问答题库468位专家为你答疑解惑
使用预训练模型时,可能需要将
(1)预训练好的 backbone 的 参数学习率设置为较小值,
(2)而backbone 之外的部分,需要使用较大的学习率。
from collections import OrderedDict
import torch.nn as nn
import torch.optim as optimnet = nn.Sequential(OrderedDict([("linear1", nn.Linear(10, 20)),("linear2", nn.Linear(20, 30)),("linear3", nn.Linear(30, 40))]))linear3_params = list(map(id, net.linear3.parameters()))
base_params = filter(lambda p: id(p) not in linear3_params, net.parameters())optimizer = optim.SGD([{'params': base_params},{'params': net.linear3.parameters(), 'lr': 0.0005}],lr=0.001, momentum=0.9)print(optimizer)
print(optimizer.param_groups[0]['lr'])
print(optimizer.param_groups[1]['lr'])
查看全文
99%的人还看了
猜你感兴趣
版权申明
本文"不同层设置不同学习率":http://eshow365.cn/6-11233-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!