位置: IT常识 - 正文

pytorch对网络层的增,删, 改, 修改预训练模型结构(pytorch自定义网络层)

编辑:rootadmin
pytorch对网络层的增,删, 改, 修改预训练模型结构 #下载模型参数model.load_state_dict(torch.load('model.pth'))#再加载网络的参数torch.load('model.pth')是获得网络参数

推荐整理分享pytorch对网络层的增,删, 改, 修改预训练模型结构(pytorch自定义网络层),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:pytorch怎么训练网络,pytorch 网络,pytorch网络搭建,pytorch定义网络,pytorch cnn网络,pytorch bp网络,pytorch输出网络结构,pytorch cnn网络,内容如对您有帮助,希望把文章链接给更多的朋友!

1.我们使用vgg11网络做示例, 看一下网络结构:

加载本地的模型:

vgg16 = models.vgg16(pretrained=False)#打印出预训练模型的参数vgg16.load_state_dict(torch.load('vgg16-397923af.pth'))

加载库中的模型

import torchimport torch.nn as nnfrom torchvision import modelsnet = models.vgg11(pretrained=True)print(net)

1)(1). 在网络中添加一层:

net网络是一个树型结构, net下面有三个结点,分别是(features, avgpoll, classifier), 我们先在features结点添加一层’lastlayer'层

net.features.add_module('lastlayer', nn.Conv2d(512,512, kernel_size=3, stride=1, padding=1))print(net) 1)(2). 在classifier结点添加一个线性层:net.classifier.add_module('Linear', nn.Linear(1000, 10))print(net)

2)(1)修改网络中的某一层(features 结点举例):net.features[8] = nn.Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))print(net)

 2)(2)修改网络中的某一层(classifier结点举例):net.classifier[6] = nn.Linear(1000, 5)print(net)pytorch对网络层的增,删, 改, 修改预训练模型结构(pytorch自定义网络层)

注意: 这里我尝试对Linear这一层进行更新, 但是Linear名字是字符串, 提取不出来,所以应该在之前添加网络时候, 名字不要取字符串, 否则会报错  ‘  'str' object cannot be interpreted as an integer’。 

 3)(1) 网络层的删除(features举例) classifier结点的操作相同。

直接使用nn.Sequential()对改层设置为空即可

net.features[13] = nn.Sequential()print(net)

 4)冻结网络中某些层 (直接使该层的requires_grad = False)即可, 这样在反向传播的时候,不会更新该层的参数#冻结指定层的预训练参数:net.feature[26].weight.requires_grad = False5). 第二种对网络结构的操作方法:net.features = nn.Sequential(*list(net.features.children())[:-4])

可以看到后面4层被去除了, 就是说可以使用列表切片的方法来删除网络层

net.classifier 对应 net.classifier.children()

net.features 对应 net.features.children()

  1. 先加载网络结构

自己的模型, model的类要有定义才可以, 如果在其他.py文件中,可以导入文件,然后用文件中的类实例化对象。model = torch.load(PATH)

 2.再加载网络参数

#下载模型参数

model.load_state_dict(torch.load('model.pth'))#再加载网络的参数torch.load('model.pth')是获得网络参数
本文链接地址:https://www.jiuchutong.com/zhishi/299377.html 转载请保留说明!

上一篇:vue 项目兼容 IE 浏览器(vue项目兼容ie9以上浏览器)

下一篇:【CSS】CSS 背景设置 ⑨ ( 背景半透明设置 )(css背景图)

  • 应纳税所得额高了好还是低了好
  • 什么情况用已交税金
  • 增值税专用发票使用规定 最新
  • 福利费计提多了如何处理
  • 什么记在借方
  • 个人所得税扣缴申报表
  • 企业所得税年报过了申报期还能修改吗
  • 个人动产租赁税费怎么算
  • 汇算清缴报告和审计报告有什么区别
  • 存货报废需要进项转出吗
  • 二季度资产总额怎么计算
  • 违约金收入是否征税
  • 劳务工和临时工
  • 股息红利纳税地点
  • 出借包装物一次摊销金额计算
  • 不是本单位职工可以报销差旅费吗
  • 银行卡撤销账户
  • 调试阶段是什么意思
  • 废品损失一般不由本月生产的产品成本负担
  • 营改增后房地产企业增值税税收筹划存在问题
  • 国税和地税分别占多少
  • 公务用车用油
  • 企业职工不稳定,还能享受小微企业所得税优惠吗?
  • 出租厂房算什么收入
  • 固定资产加速折旧最新政策2023
  • 预付账款后期如何冲销
  • 1697508560
  • 工会经费80%
  • 企业的银行存款日记账属于
  • 出纳电汇流程
  • 股东收回投资款的现金流量
  • 办理出口退税的流程
  • windows7如何格式化恢复出厂设置
  • 简易征收做账
  • 贷款利息如何计算年利率
  • 贷款减值损失准备怎么算
  • php做网页
  • 未取得专用发票详细原因怎么写
  • bg命令 将作业放到后台运行
  • 增值税发票认证期限是多久
  • 滞纳金的计算公式为
  • 施工企业应承担的主要责任和义务
  • js怎么存储数据
  • mac安装步骤
  • 冲红的发票怎么做账会计分录
  • 小规模纳税人税金账务处理
  • 专票没有抵扣联可以作废吗
  • ms-sql-s
  • 电子发票开错了应该怎么办?
  • 国税申报流程怎么操作的
  • 增值税一般纳税人资格登记表
  • 接受捐赠的增值税怎么处理
  • 税控盘减免税款月末不用交税还要结转吗
  • 备用金被盗刷了怎么办
  • 调整以前年度利息支出
  • 现金股利征收个人所得税吗
  • 机关和事业单位党的支部委员会每届任期
  • 农民专业合作社法
  • 提前支付利息如何计算
  • 如何把凭证装订机弄坏
  • sql server用处
  • xp浏览器无法浏览网页
  • linux 主力机
  • linux命令合集
  • wind10怎么打开摄像头
  • mac安全设置在哪里
  • linux内核模块命令
  • win10外置光驱读不出光盘怎么办
  • window10邮件
  • 开发环境配置是干嘛
  • cocos2dx android游戏防破解总结
  • 信号处理函数 strdup
  • android studio打包jar文件
  • unity的协程
  • 用python编写
  • python去除文件中的空格
  • 电子税务局可以开纸质发票吗
  • 走逃失踪纳税人如何处理
  • 甘肃省国家税务局电子税务局
  • 税控盘操作指南
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设