位置: IT常识 - 正文

pytorch对已有模型的更改(常用的操作)(pytorch model.module)

编辑:rootadmin
pytorch对已有模型的更改(常用的操作)

推荐整理分享pytorch对已有模型的更改(常用的操作)(pytorch model.module),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:pytorch有哪些模型,pytorch model.predict,pytorch_model.bin,pytorch model.predict,pytorch_model.bin,pytorch modules,pytorch model.parameters,pytorch model.module,内容如对您有帮助,希望把文章链接给更多的朋友!

本文会做经常性的更改,如有错误或者其他补充的,请各位大佬不吝指点。

如图所示为我们的示例输出的网络结构。

引入创建的模型:

import torchimport simple_modulemod = simple_module.Module()

一、模型的保存与读取

1.整个模型的保存与读取

# 保存整个模型torch.save(mod, '../parameters/mod.pth')# 读取整个模型mod_load = torch.load('../parameters/mod.pth')

2.模型参数的保存与读取(以字典方式保存和读取)

# # 保存模型的参数(以字典的方式保存)torch.save(mod.state_dict(), '../parameters/mod_parameter.pth')# 查看保存了哪些参数print(mod.state_dict().keys())print(mod.state_dict()['feature.0.0.bias'])# 读取模型的参数(以字典的方式读取)mod.load_state_dict(torch.load('../parameters/mod_parameter.pth'))odict_keys(['feature.0.0.weight', 'feature.0.0.bias', 'feature.0.1.weight','feature.0.1.bias', 'feature.0.1.running_mean', 'feature.0.1.running_var', 'feature.0.1.num_batches_tracked', 'feature.1.0.weight', 'feature.1.0.bias', 'feature.1.1.weight', 'feature.1.1.bias', 'feature.1.1.running_mean', 'feature.1.1.running_var', 'feature.1.1.num_batches_tracked', 'classifier.1.weight','classifier.1.bias'])tensor([-0.1721, -0.1222, 0.1023, -0.1484, -0.0547, -0.1922, -0.0796, -0.1784, -0.0233, -0.0271, -0.1018, 0.1875])pytorch对已有模型的更改(常用的操作)(pytorch model.module)

二、模型更改某一层

# 模型修改某一层mod.classifier[1] = torch.nn.Linear(in_features=3072, out_features=20, bias=True)

三、模型删除某些层

# 删除某一层,可以将该层设置为空序列mod.classifier[1] = torch.nn.Sequential()# 可以采用切片的方式删除,这样删除更加彻底mod.classifier = torch.nn.Sequential(*list(mod.classifier.children())[:-1])# 或者直接删除mod.classifier.__delattr__('1')

四、模型添加层(貌似只能在某一个块的末尾添加,后续再查找资料,有大佬可以指点一下)

# 模型添加层mod.classifier.add_module(name='liner', module=torch.nn.Linear(in_features=3072, out_features=100, bias=True))

五、冻结某些层,使得训练时不进行参数更行

1.冻结某一层

# 冻结某一层mod.feature[0][0].weight.requires_grad = False

2.冻结所有的参数

# 冻结所有的参数for param in mod.parameters(): param.requires_grad = False

3.冻结前面某部分的参数,可先将参数名称罗列出来,然后选择一部分的参数名称,利用参数的名称进行冻结。这种方式可以任意地冻结自己想要冻结的层。

no_grad = []for name, value in mod.named_parameters(): # print(name) no_grad.append(name)no_grad = no_grad[:-4]for name, value in mod.named_parameters(): if name in no_grad: value.requires_grad = False else: value.requires_grad = True

 4.还有一种方式,就是只冻结前面几层

i = 0for name, value in mod.named_parameters(): value.requires_grad = False i = i + 1 if i == 4: break;

或者

model_parameters = model.named_parameters()for i in range(freeze): name, value = next(model_parameters) value.requires_grad = False

这是我目前想到的一个方法,还有其他方法的请大佬不吝指点。 

无论哪种方式,都是将对应层的weight的requires_grad设置为False。

5.最后还需要给优化器设置过滤器

# 定义一个fliter,只传入requires_grad=True的模型参数optimizer = optim.SGD(filter(lambda p : p.requires_grad, mod.parameters()), lr=1e-2)
本文链接地址:https://www.jiuchutong.com/zhishi/288943.html 转载请保留说明!

上一篇:vue表单验证rules以及validator验证器的使用(vue表单验证数字)

下一篇:厄勒布鲁附近湖上的仲夏之光,瑞典 (© Anders Jorulf/Getty Images)(厄勒布鲁赛程500)

  • iphone13pro怎么关闭自拍镜像(iphone13pro怎么关闭5g网络)

    iphone13pro怎么关闭自拍镜像(iphone13pro怎么关闭5g网络)

  • ios设备管理信任不见了(ios设备管理信任会有什么影响?)

    ios设备管理信任不见了(ios设备管理信任会有什么影响?)

  • 拼多多微信无法支付(拼多多微信无法支付怎么办)

    拼多多微信无法支付(拼多多微信无法支付怎么办)

  • airpods pro需要ios什么版本(airpods pro需要ios几)

    airpods pro需要ios什么版本(airpods pro需要ios几)

  • 交易猫交易一次是什么意思(交易猫交易一次多久)

    交易猫交易一次是什么意思(交易猫交易一次多久)

  • 电脑百分号怎么打(电脑百分号怎么打出来)

    电脑百分号怎么打(电脑百分号怎么打出来)

  • 候补退单什么时候到账(候补退单什么时候退钱)

    候补退单什么时候到账(候补退单什么时候退钱)

  • 钉钉语音可以录多长时间(钉钉语音录音对方知道吗)

    钉钉语音可以录多长时间(钉钉语音录音对方知道吗)

  • qq如何隐藏消息内容(qq如何隐藏消息通知内容)

    qq如何隐藏消息内容(qq如何隐藏消息通知内容)

  • 静态媒体是指什么(下列哪些是静态媒体)

    静态媒体是指什么(下列哪些是静态媒体)

  • qq语音翻译怎么关(qq语音翻译怎么弄)

    qq语音翻译怎么关(qq语音翻译怎么弄)

  • opporeno无法关机怎么办(opporeno5无法关机)

    opporeno无法关机怎么办(opporeno5无法关机)

  • 手机充电口小芯片坏了(手机充电口小芯片坏了多少钱)

    手机充电口小芯片坏了(手机充电口小芯片坏了多少钱)

  • 电脑没声音了 如何恢复(电脑没声音了怎么解决视频)

    电脑没声音了 如何恢复(电脑没声音了怎么解决视频)

  • 抖音里删除的作品能找到吗(抖音里删除的作品还能找回来吗)

    抖音里删除的作品能找到吗(抖音里删除的作品还能找回来吗)

  • 手机优酷gif保存在哪儿(手机优酷gif保存到哪里了)

    手机优酷gif保存在哪儿(手机优酷gif保存到哪里了)

  • iQOO Neo的机身厚度(iqooneo5手机厚度)

    iQOO Neo的机身厚度(iqooneo5手机厚度)

  • 如何在没有 TPM 的情况下安装 Windows 11 [TPM 2.0 绕过](如何在没有开瓶器的情况下开红酒)

    如何在没有 TPM 的情况下安装 Windows 11 [TPM 2.0 绕过](如何在没有开瓶器的情况下开红酒)

  • Win11正式版发现新问题:不兼容注册表中带有非 ASCII 字符的应用程序(window10发现威胁怎么办)

    Win11正式版发现新问题:不兼容注册表中带有非 ASCII 字符的应用程序(window10发现威胁怎么办)

  • ati2sgag.exe进程安全吗 ati2sgag进程信息查询

    ati2sgag.exe进程安全吗 ati2sgag进程信息查询

  • 2022前端面试题汇总(持续更新中~)(2022前端面试题及答案)

    2022前端面试题汇总(持续更新中~)(2022前端面试题及答案)

  • DEDECMS5.7修改前台ckeditor编辑器为fck编辑器,后台仍然保持ckeditor的方法(dedecms配置)

    DEDECMS5.7修改前台ckeditor编辑器为fck编辑器,后台仍然保持ckeditor的方法(dedecms配置)

  • 发票名称开错了但是税号没错怎么办
  • 结转和结转到的区别
  • 主营业务成本大于生产成本
  • 增值税不视同销售行为有哪些
  • 通行费 发票
  • 个税里任职受雇从业类型
  • 基金会计核算的核算主体是
  • 会计凭证借方和贷方怎么填
  • 成本法下的后续计量
  • 收到技术咨询费摘要
  • 个税手续费返还会计分录
  • 私车公用税务处理
  • 应交税费未交增值税怎么计算
  • 小微企业的特点及经营模式举例
  • 采购发票主要包括什么可以根据什么单据流转生成
  • 企业购置房产折旧
  • 无法收回的款项摘要怎么写
  • 研发销售型企业
  • 汽车过户费包括
  • 违约金条款的特点
  • 编译安装php7
  • 中秋福利发放现金文案怎么写
  • 路由器重启以后wifi不见了
  • php中file
  • 分公司改为子公司的所得税业务处理?
  • 怎么查发票的真假鉴定
  • 子公司使用母公司授信
  • 出租经营的开发产品应视为企业的
  • 同城票据清算和清算资金往来的区别
  • docker的常用命令汇总
  • php数学
  • 卖出周转材料的分录怎么做
  • 外购存货的成本包括哪些内容
  • 冲减多计提的工资摘要怎么写
  • 金税三期开票流程
  • 发票6个点怎么算收税点
  • mysql查询或
  • 公司认缴出资怎么交税
  • 六税一费和六税两费的区别
  • 个人独资企业法主要内容
  • sql2008用户sa登录失败
  • 劳务外包合同需要注意什么
  • 息税前利润与盈亏平衡点
  • 递延收益会计科目使用说明
  • 企业所得税汇算清缴时间
  • 物流辅助服务包含哪些内容
  • 委托加工以受托方核定的数量为计税依据
  • 个税里的年金是指
  • 年终奖个税计税方式
  • 建筑业增值税会退税吗
  • 调整账户有哪几类
  • 待摊费用年底能够有余额么
  • 待处理财产损益会计分录
  • 固定资产清理后怎么做账
  • sql server存储过程写法
  • 目前用到的两个字符
  • 详解十二建星择日方法
  • ubuntu安装超详细教程
  • vrvrf.exe是什么进程
  • win7防病毒设置在哪
  • xp系统的程序和功能在哪里
  • xp系统怎么设置自动重启
  • linux的系统日志
  • windows7怎
  • 垂直翻转画布
  • linux shell打开文件
  • perl 获取参数
  • jquery插件是干什么的
  • node.js入门教程
  • python嵌套列表生成
  • AnalogClock
  • Python的pycurl包用法简介
  • js的delegate
  • 如何用jquery
  • android获取本地相册中图片
  • javascript面向对象精要pdf下载
  • 江苏专家库申报在哪个网站
  • 不用税控盘可以清卡吗
  • 生产企业税点
  • 电子税务局怎么找回用户名
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设