pytorch如何冻结某层参数的实现
作者:Pr4da 时间:2021-02-03 11:49:36
在迁移学习finetune时我们通常需要冻结前几层的参数不参与训练,在Pytorch中的实现如下:
class Model(nn.Module):
def __init__(self):
super(Transfer_model, self).__init__()
self.linear1 = nn.Linear(20, 50)
self.linear2 = nn.Linear(50, 20)
self.linear3 = nn.Linear(20, 2)
def forward(self, x):
pass
假如我们想要冻结linear1层,需要做如下操作:
model = Model()
# 这里是一般情况,共享层往往不止一层,所以做一个for循环
for para in model.linear1.parameters():
para.requires_grad = False
# 假如真的只有一层也可以这样操作:
# model.linear1.weight.requires_grad = False
最后我们需要将需要优化的参数传入优化器,不需要传入的参数过滤掉,所以要用到filter()函数。
optimizer = optim.Adam(filter(lambda p: p.requires_grad, model.parameters()), lr=0.1)
其它的博客中都没有讲解filter()函数的作用,在这里我简单讲一下有助于更好的理解。
filter(function, iterable)
function: 判断函数
iterable: 可迭代对象
filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
filter()函数将requires_grad = True的参数传入优化器进行反向传播,requires_grad = False的则被过滤掉。
来源:https://blog.csdn.net/qq_40210586/article/details/103878155
标签:pytorch,冻结,参数
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Python中OpenCV Tutorials 20 高动态范围成像的实现步骤
2022-04-02 07:24:20
![](https://img.aspxhome.com/file/2023/5/82935_0s.webp)
基于python + django + whoosh + jieba 分词器实现站内检索功能
2023-03-05 05:30:56
![](https://img.aspxhome.com/file/2023/3/82513_0s.png)
Python计数器collections.Counter用法详解
2021-06-02 20:30:18
python3.6.3+opencv3.3.0实现动态人脸捕获
2022-12-21 11:59:41
![](https://img.aspxhome.com/file/2023/6/107576_0s.jpg)
asp 正则实现清除html文本格式的函数代码
2011-03-09 11:21:00
为什么Access数据库的精髓不在VBA之中
2008-11-28 16:45:00
关于Pycharm安装第三方库超时 Read time-out的问题
2022-03-08 10:12:43
![](https://img.aspxhome.com/file/2023/9/118629_0s.png)
如何使用Python的OpenCV库处理图像和视频
2022-09-06 10:22:12
![](https://img.aspxhome.com/file/2023/9/90349_0s.png)
详解用python -m http.server搭一个简易的本地局域网
2023-09-29 13:03:34
![](https://img.aspxhome.com/file/2023/7/110587_0s.png)
xmlhttp中运行getResponseHeader出错,提示:The requested header was not found
2010-03-27 21:47:00
最新版 Windows10上安装Python 3.8.5的步骤详解
2021-12-31 00:50:29
![](https://img.aspxhome.com/file/2023/1/118331_0s.png)
Python从入门到实战之数据结构篇
2023-10-16 21:32:30
![](https://img.aspxhome.com/file/2023/3/94703_0s.jpg)
python 利用PyAutoGUI快速构建自动化操作脚本
2021-08-04 15:42:14
![](https://img.aspxhome.com/file/2023/5/107505_0s.png)
Python+Flask编写一个简单的行人检测API
2023-09-26 17:55:19
![](https://img.aspxhome.com/file/2023/5/85255_0s.png)
网页语言编码及asp乱码问题解决方案
2008-01-31 13:21:00
解决python中使用plot画图,图不显示的问题
2021-09-27 16:00:07
![](https://img.aspxhome.com/file/2023/6/90346_0s.jpg)
如何在2003系统注册fso组件
2010-11-29 19:55:00
ASP Framework_1_简介
2009-10-12 11:35:00
FrontPage 2002应用技巧四则
2008-08-17 10:57:00
python 服务器运行代码报错ModuleNotFoundError的解决办法
2021-03-23 00:39:08