位置: 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背景图)

  • 价内税有哪些税种
  • 工程施工是资产还是负债
  • 贴现法付息的有效年利率
  • 软件企业认定流程
  • 无租房合同可以取住房公积金吗
  • 未抵扣的进项发票是什么意思
  • 政府发放的人才补贴,企业可以增加条款要求离职返还吗
  • 工业企业总产值的计算是以什么为主体
  • 每天现金日记账登记完以后应怎么对账
  • 企业捐赠不动产 会计分录
  • 公司取现备用金违法吗
  • 债务重组是什么意思?
  • 股东收取了公司的货款
  • 什么费用可以列支拆迁补偿费
  • 服务费增值税专用发票税点
  • 材料盘亏税前扣除怎么算
  • 个人取得投资收益是否缴纳个税
  • 地税印花税怎么算
  • 跨地区建筑安装企业个人所得税征收方式申请表
  • 费用报销是先记账后付款还是先付款后记账
  • 财务费用错记制造费用
  • 单位存款账户按用途分为
  • 餐饮店收入是销售收入吗
  • 免税和零税率和税率区别
  • 应付账款转营业外收入需要什么条件
  • 关于购买专业书籍的请示
  • 即征即退的增值税需要缴纳企业所得税吗
  • 会计档案的保管期限是从什么算起
  • 资源管理器被关闭了怎么恢复
  • 消费税和购置税怎么算
  • Win11怎么设置屏幕熄灭时间
  • PHP:finfo_open()的用法_fileinfo函数
  • thinkphp获取数据库数据
  • 同一控制下企业合并发生的审计费用计入
  • jquery版本
  • phppdo连接数据库
  • 10分钟学会万用表
  • unity ik
  • win11系统自动更新
  • 公司组织员工旅游费可以在税前扣除吗
  • 银行的社保缴费基数好高啊
  • 外商投资企业 外资企业
  • 净值是原值减去折旧吗?
  • 小规模可以不用软件做账吗
  • 小规模普通发票怎么做分录
  • 稳岗补贴缴纳社保个人部分还是公司部分
  • 钢管扣件租赁公司账务处理
  • 关于出售使用过的产品
  • 银行承兑汇票如何签收
  • 销售返利是否需要交税
  • 三栏式明细账目录表
  • 预收账款属于借还是贷
  • 土地税计税方法
  • 以前年度长期股权投资漏记调整
  • 电子承兑汇票的承兑人是谁
  • 施工图审查费属于什么费
  • 研发支出是科目吗
  • my sql命令
  • 安装centos6.6详细步骤
  • win8.1的开始菜单在哪
  • win8cp
  • win8怎么提高网速
  • windows xp的电脑
  • xp如何改windows7
  • Linux上PPTP VPN的一键安装以及设置开机启动的方法
  • win7自动关闭显示器
  • jquery.ui
  • css百分比进度条
  • jqueryvalidate验证
  • linuxshell命令行
  • activity的作用和生命周期
  • vs开发unity教程
  • python二分查找非递归
  • HttpClient通过Post上传文件
  • 河北省地税网上缴费平台
  • 朝阳税务总局
  • 江苏电子税务局app下载
  • 公司买社保公司倒闭了怎么办
  • 加大税务稽查工作的建议
  • 上海金山国税局局长
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设