pytorch 更改预训练模型网络结构的方法
作者:wayne980 时间:2022-04-02 04:41:19
一个继承nn.module的model它包含一个叫做children()的函数,这个函数可以用来提取出model每一层的网络结构,在此基础上进行修改即可,修改方法如下(去除后两层):
resnet_layer = nn.Sequential(*list(model.children())[:-2])
那么,接下来就可以构建我们的网络了:
class Net(nn.Module):
def __init__(self , model):
super(Net, self).__init__()
#取掉model的后两层
self.resnet_layer = nn.Sequential(*list(model.children())[:-2])
self.transion_layer = nn.ConvTranspose2d(2048, 2048, kernel_size=14, stride=3)
self.pool_layer = nn.MaxPool2d(32)
self.Linear_layer = nn.Linear(2048, 8)
def forward(self, x):
x = self.resnet_layer(x)
x = self.transion_layer(x)
x = self.pool_layer(x)
x = x.view(x.size(0), -1)
x = self.Linear_layer(x)
return x
最后,构建一个对象,并加载resnet预训练的参数就可以啦~
resnet = models.resnet50(pretrained=True)
model = Net(resnet)
来源:https://blog.csdn.net/wayne980/article/details/84026939
标签:pytorch,预训练,模型,网络结构


猜你喜欢
asp压缩access数据库(带密码)方法
2007-09-06 19:48:00
ChatGpt无法访问或错误码1020的几种解决方案
2023-03-03 05:58:36
如何使用Python生成Hilbert矩阵
2021-08-09 12:36:08

详解duck typing鸭子类型程序设计与Python的实现示例
2022-12-26 07:12:19
Windows2012配置SQLServer2014AlwaysOn的图解
2024-01-16 15:39:01

sql集合运算符使用方法
2024-01-26 08:18:13
python实现的AES双向对称加密解密与用法分析
2022-08-11 00:42:32
分面搜索(Faceted Search)
2009-07-31 12:44:00

Python使用enumerate获取迭代元素下标
2023-03-05 01:46:31
Python使用BeautifulSoup4修改网页内容的实战记录
2023-04-10 15:59:56
安装MSDE2000提示为了安全起见,要求使用强 SA 密码的解决方法
2024-01-14 08:49:09

pycharm2020.1.2永久破解激活教程,实测有效
2021-11-01 15:17:57

flask-socketio实现WebSocket的方法
2022-09-25 17:26:24
防止别人iframe的js
2008-09-26 17:19:00
Python Tkinter简单布局实例教程
2021-03-08 13:41:23

在Centos 5.5 上编译安装mysql 5.5.9
2024-01-19 02:56:39
详解Python中的日志模块logging
2021-11-24 21:58:34

python opencv之SURF算法示例
2021-03-06 13:10:28

解决Jupyter因卸载重装导致的问题修复
2023-09-30 18:22:31
跟老齐学Python之Import 模块
2022-02-02 21:13:34
