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

  • 怎样分析检查你的网站是否健康?(怎样分析检查你的作业)

    怎样分析检查你的网站是否健康?(怎样分析检查你的作业)

  • 华为p50pro怎么设置简易模式(华为p50pro怎么设置桌面)

    华为p50pro怎么设置简易模式(华为p50pro怎么设置桌面)

  • 没有骑手接单怎么办(没有骑手接单怎么加小费)

    没有骑手接单怎么办(没有骑手接单怎么加小费)

  • 华为nova7支持无线充电功能吗(华为nova7支持无线反向充电吗)

    华为nova7支持无线充电功能吗(华为nova7支持无线反向充电吗)

  • 荣耀30pro如何拍广角(荣耀30pro如何拍摄运动物体)

    荣耀30pro如何拍广角(荣耀30pro如何拍摄运动物体)

  • iphone已停用请15分钟后再试怎么解决(iphone已停用请1分钟后再试是什么原因)

    iphone已停用请15分钟后再试怎么解决(iphone已停用请1分钟后再试是什么原因)

  • wps审阅模式怎么关闭(wps审阅模式怎么调回正常)

    wps审阅模式怎么关闭(wps审阅模式怎么调回正常)

  • 快手怎么关闭直播权限(快手怎么关闭直播)

    快手怎么关闭直播权限(快手怎么关闭直播)

  • 为什么网盘上的文件打开失败(为什么网盘上的资源不能在电脑上看)

    为什么网盘上的文件打开失败(为什么网盘上的资源不能在电脑上看)

  • 拼多多没有拼单成功怎么取消订单(拼多多没有拼单成功怎么退款取消订单)

    拼多多没有拼单成功怎么取消订单(拼多多没有拼单成功怎么退款取消订单)

  • 苹果11怎么喊siri(苹果11怎么喊sisr清理灰尘)

    苹果11怎么喊siri(苹果11怎么喊sisr清理灰尘)

  • 苹果有锁卡贴机什么意思(苹果有锁卡贴机可以还原吗)

    苹果有锁卡贴机什么意思(苹果有锁卡贴机可以还原吗)

  • 屏幕延时重叠问题大吗(屏幕 延时重叠)

    屏幕延时重叠问题大吗(屏幕 延时重叠)

  • ps羽化值快捷键(ps羽化快捷键在哪里设置)

    ps羽化值快捷键(ps羽化快捷键在哪里设置)

  • iphone怎么没有声音了(iphone怎么没有声音了怎么办)

    iphone怎么没有声音了(iphone怎么没有声音了怎么办)

  • ipad如何取消订阅(ipad如何取消)

    ipad如何取消订阅(ipad如何取消)

  • vivo怎么恢复app软件(Vivo怎么恢复通话记录)

    vivo怎么恢复app软件(Vivo怎么恢复通话记录)

  • 如何分辨iwatch型号是几代(如何确认iwatch型号)

    如何分辨iwatch型号是几代(如何确认iwatch型号)

  • 苹果11pro怎么看是不是国行(苹果11pro怎么看流量使用情况)

    苹果11pro怎么看是不是国行(苹果11pro怎么看流量使用情况)

  • 京东评价错了怎么删除(京东购物评价错了怎么撤回)

    京东评价错了怎么删除(京东购物评价错了怎么撤回)

  • 蚂蚁森林怎么加好友(蚂蚁森林怎么加不了好友)

    蚂蚁森林怎么加好友(蚂蚁森林怎么加不了好友)

  • ppt怎么换另一个的模板(ppt怎么换另一个ppt模板,不换内容)

    ppt怎么换另一个的模板(ppt怎么换另一个ppt模板,不换内容)

  • 拼多多货号在哪里(拼多多怎么搜货号)

    拼多多货号在哪里(拼多多怎么搜货号)

  • ios12录屏在哪里(苹果12屏幕录制在哪)

    ios12录屏在哪里(苹果12屏幕录制在哪)

  • seti@home.exe - seti@home是什么进程 有什么用

    seti@home.exe - seti@home是什么进程 有什么用

  • 汇票签收后可以撤回吗
  • 实收资本实务处理办法
  • 企业发生的哪些成本可以在企业所得税税前扣除
  • 季度企业所得税申报表怎么填写
  • 社保工伤保险可以交两家公司吗
  • 会议费发票能抵扣吗
  • 主营业务收入没收到钱怎么做账
  • 母公司出售子公司给另一家子公司
  • 票面3个点的增值税发票是交几个点的税金
  • 企业外币账户怎么开通
  • 给员工发开门红包的通知
  • 营改增对小规模的影响
  • 企业申请零申报需要什么条件
  • 电子商务交易成本
  • 费用退回怎么做账
  • 长期股权投资成本法初始计量
  • 普票红冲部分金额的发票怎么开
  • 个人开劳务发票要同时交个税吗?
  • 所得税汇算清缴扣除标准
  • 医疗收费票据可以补打吗
  • 一般纳税人技术开发税率
  • 绿植租赁公司都适合什么名字
  • 暂估发票未到年报怎么调
  • 个人使用过的设备有哪些
  • 零星工程实施流程
  • 押金算不算房租
  • 一家公司各项费用支出
  • 通行费发票可以抵扣吗
  • 为离职员工代缴社保 如何规避法律责任
  • deepin 20 wifi
  • scureapp.exe - scureapp是什么进程 有什么用
  • 外贸企业进项税额转出
  • 应收罚款收入
  • ieview.exe 是什么
  • 如何分清福利性劳动
  • PHP:gettimeofday()的用法_Date Time函数
  • 退货时可以按部分退货吗
  • 机关事业单位体检费用标准规定
  • 企业所得税申报表模板
  • php curl_init
  • 业务招待费属于现金流量表中的哪个项目
  • php imagefill
  • 前端部署发布项目有哪些
  • 什么情况下应该辞职
  • 增值税预征税率是多少
  • 免税进项抵扣要做账吗
  • 英文好书推荐
  • 企业收取的罚款需要交企业所得税吗
  • sql server 判断数据是否存在
  • 高速公路通行发票税率
  • 企业为员工承担个人部分的五险 一金可以税前扣除?
  • 产品成本计算的分类法适用于( )
  • sqlserver如何使用
  • 销售折让如何做分录
  • 公司交的养老保险的钱可以取出来吗
  • 转让负债 增值税
  • 专用设备技术维护费
  • 增值税一般纳税人登记表在哪里找
  • 息税前利润怎么算出来的
  • 应交增值税结转凭证
  • 期末应交税费有余额吗
  • 电子税务局自然人扣缴客户端
  • 物业公司代业主委员会收公共收益怎么开发票
  • 商品销售成本的计算方法中,商品零售企业
  • sql server存储过程写法
  • win10玩魔兽争霸卡顿
  • slmgr.vbs /dli
  • u盘装系统win8
  • linux网络编程宋敬彬pdf
  • windows设备和打印机
  • mac10.10.5无法升级
  • mac不小心把硬盘删了怎么办
  • HttpURLConnection连接 详解
  • windows批量处理命令
  • unity 更新
  • 宁波地税如何网上缴费
  • 税务登记证信息
  • 网上增值税发票验旧
  • 买车可以抵扣企业所得税多少
  • 财务审计报告哪个位置可以看出是否亏损
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设