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,预训练,模型,网络结构
0
投稿

猜你喜欢

  • 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
  • asp之家 网络编程 m.aspxhome.com