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

  • 如何在excel中加入一个文件(如何在excel中加入选择项)

    如何在excel中加入一个文件(如何在excel中加入选择项)

  • vivo x27有杂音滋滋响怎么办(vivo有杂音怎么解决)

    vivo x27有杂音滋滋响怎么办(vivo有杂音怎么解决)

  • 怎样设置手机qq自动回复(怎样设置手机QQ)

    怎样设置手机qq自动回复(怎样设置手机QQ)

  • 快手怎么关闭在线状态(快手怎么关闭在看功能)

    快手怎么关闭在线状态(快手怎么关闭在看功能)

  • p40是双扬声器吗(p40有双扬声器吗?)

    p40是双扬声器吗(p40有双扬声器吗?)

  • 抖音总音浪音会清零吗(抖音的音浪是每场结算吗)

    抖音总音浪音会清零吗(抖音的音浪是每场结算吗)

  • iphonexr支不支持wifi6(iphonexr支不支持20w快充)

    iphonexr支不支持wifi6(iphonexr支不支持20w快充)

  • 手机怎么在墙上投影(手机怎么在墙上可以看视频呢)

    手机怎么在墙上投影(手机怎么在墙上可以看视频呢)

  • 钉钉直播能听到观看者声音吗(钉钉直播能听到自己的声音吗)

    钉钉直播能听到观看者声音吗(钉钉直播能听到自己的声音吗)

  • 计算机网络由什么组成部分(计算机网络由什么子网)

    计算机网络由什么组成部分(计算机网络由什么子网)

  • 华为p30后置摄像头玻璃碎了怎么办(华为p30后置摄像头像素)

    华为p30后置摄像头玻璃碎了怎么办(华为p30后置摄像头像素)

  • ipad自带录音软件在哪(ipad录音乐软件)

    ipad自带录音软件在哪(ipad录音乐软件)

  • 定位显示离线什么意思(定位手机显示离线怎么找回)

    定位显示离线什么意思(定位手机显示离线怎么找回)

  • 华为nova5pro的呼吸灯在哪里设置(华为nova5pro怎么呼叫语音助手)

    华为nova5pro的呼吸灯在哪里设置(华为nova5pro怎么呼叫语音助手)

  • 华硕atk驱动安装教程(华硕atk驱动安装不了怎么办)

    华硕atk驱动安装教程(华硕atk驱动安装不了怎么办)

  • 华为mate30会有50倍吗(华为mate30会有黑边吗)

    华为mate30会有50倍吗(华为mate30会有黑边吗)

  • 快手作品b类违规封几天(快手作品b类违规吗)

    快手作品b类违规封几天(快手作品b类违规吗)

  • 用友t3反结账的操作步骤(用友t3反结算)

    用友t3反结账的操作步骤(用友t3反结算)

  • 苹果7p的耳机怎样使用(苹果7p的耳机怎么用)

    苹果7p的耳机怎样使用(苹果7p的耳机怎么用)

  • cad图怎么导入PS中(CAD图怎么导入ps图片不清晰)

    cad图怎么导入PS中(CAD图怎么导入ps图片不清晰)

  • 步步高家教机有什么功能(步步高家教机有定位功能吗)

    步步高家教机有什么功能(步步高家教机有定位功能吗)

  • Win7原版系统安装教程(超详细图文版)(win7原版系统安装后没有任何驱动)

    Win7原版系统安装教程(超详细图文版)(win7原版系统安装后没有任何驱动)

  • 幽鹤国家公园的翡翠湖, 加拿大不列颠哥伦比亚省 (© Cavan Images/Offset)(斯卡伊保安公司怎么样)

    幽鹤国家公园的翡翠湖, 加拿大不列颠哥伦比亚省 (© Cavan Images/Offset)(斯卡伊保安公司怎么样)

  • 人际关系是定义是什么(人际关系定义是什么)

    人际关系是定义是什么(人际关系定义是什么)

  • 教您显示器频率超出范围的解决方法(显示器显示频率设置)

    教您显示器频率超出范围的解决方法(显示器显示频率设置)

  • nvidia-smi报错:NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver 原因及避坑解决方案(nvidia-smi failed to initialize)

    nvidia-smi报错:NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver 原因及避坑解决方案(nvidia-smi failed to initialize)

  • 车辆购置税是什么税种
  • 自然人独资交企业所得税吗
  • 合同金额含税不含税
  • 印花税购销合同计税依据70%
  • 本期金额和上期金额怎么填写
  • 交通补贴和通讯补贴怎么发合理
  • 当月报废生产设备一台,原价80万元
  • 建筑业的进项税怎么抵扣
  • 库存金额负数怎么处理
  • 建筑施工外包
  • 企业支付的工伤赔偿需要什么材料
  • 租赁业务增值税纳税义务发生时间
  • 申报水利基金减免性质在哪里找?
  • 怎么导出全年开奖记录
  • 学生兼职需要交什么税
  • 定额发票2019年规定
  • 加盟商的作用
  • 坏账准备的计提应当关注
  • 税务局报表利润表本期金额
  • 出口报关单中有哪些内容
  • 资本公积的借方和贷方各表示什么
  • 计提坏账的应收账款收回
  • 合同成本如何设一级科目
  • linux 操作系统查看
  • 偶然所得怎么缴纳个人所得税免税
  • 所有者权益变动表范本
  • 支付挂靠方的管理费用有进项吗?
  • 出售固定资产减按2%会计处理1%怎么处理
  • 贴现息等于什么
  • 怎么u盘装系统,u盘装系统教程图解
  • 酒店行业存货周转率多少合适
  • 增值税常见账务处理方法
  • 应收账款项目在资产负债表怎么填列
  • 宝塔面板使用教程
  • php实现base64图片上传方式实例代码
  • 人工智能机器人保姆什么时候实现
  • 当月没有生产情况正常吗
  • 子公司提取盈余公积 合并抵消
  • vue路由的理解
  • linuxshel
  • win+e快捷键在哪
  • 增值税专用发票电子版
  • 织梦使用教程
  • 年末关账注意事项
  • 施工企业预缴税款
  • 什么是企业会计确认计量和报告的空间范围
  • 一般纳税人作废发票的流程
  • SQL Server UPDATE语句的用法详解
  • 公司帐户转到法人私卡备用金行吗
  • 贷款利息收入如何计算
  • 非流动资产处置损失计入什么科目
  • 预收账款挂账多长时间必须确认收入
  • 运输公司发票抵扣
  • 行政单位资产报告范文
  • 外地工程预缴的工资怎么做账务处理
  • 库存结转成本如何计算
  • 可转债公允价值变动计入
  • 环境会计的构建方法
  • having的用法详解
  • mysqld mysql
  • xp系统没有声音没有音频设备
  • 安卓单机手游下载
  • window照片无法预览
  • win8的ie浏览器
  • w10英雄联盟老是崩溃
  • awk统计nginx日志
  • win7显示
  • 双硬盘需要设置主从盘吗
  • vmware虚拟机Linux扩展硬盘
  • msng.exe是什么
  • js中正则表达式语法
  • dos命令检测硬盘坏道
  • python如何精确小数
  • unity4.1
  • css中渐变
  • firefox浏览器标识ua
  • 安卓画图板
  • python爬虫视频教程
  • 访问网页显示脚本错误
  • 残疾人交房产契税有优惠吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设