Pytorch替换model对象任意层的方法

2023-05-16

Pytorch替换model对象任意层的方法 - 知乎直接上代码 import torch from torch import nn from torchvision.models import alexnet # 核心函数,参考了torch.quantization.fuse_modules()的实现 def _set_module(model, submodule_key, module): tokens = …https://zhuanlan.zhihu.com/p/356273702

import torch
from torch import nn
from torchvision.models import alexnet

# 核心函数,参考了torch.quantization.fuse_modules()的实现
def _set_module(model, submodule_key, module):
    tokens = submodule_key.split('.')
    sub_tokens = tokens[:-1]
    cur_mod = model
    for s in sub_tokens:
        cur_mod = getattr(cur_mod, s)
    setattr(cur_mod, tokens[-1], module)

# 以AlexNet为例子
model = alexnet(pretrained=False)

# 打印原模型
print("原模型")
print(model)

# 打印每个层的名字,和当前配置
# 从而知道要改的层的名字
for module in model.named_modules():
    print(module)

# 假设要换掉AlexNet前2个卷积层,将通道从64改成128,其余参数不变
# 定义新层
layer0 = nn.Conv2d(3, 128, (11, 11), (4, 4), (2,2))
layer1 = nn.Conv2d(128, 192, (5, 5), (1, 1), (2,2))
# 层的名字从上面19-20行的打印内容知道AlexNet前2个层的名字为 "features.0" 和 "features.3"
_set_module(model, 'features.0', layer0)
_set_module(model, 'features.3', layer1)

# 打印修改后的模型
print("新模型")
print(model)

# 推理试一下
img = torch.rand((1, 3, 224, 224))
model(img)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pytorch替换model对象任意层的方法 的相关文章

  • Java中如何将一个数组分割成多个等长度的数组

    Java中如何将一个数组分割成多个等长度的数组 xff0c 最后剩下的为一个素组 先看图分析数据提取公式分装代码 1 如下我们需求 最近朋友android项目中有一个需求如下 xff1a 这一个长集合 item0 item1 item2 i
  • 作为移动端(Android)开发的我已被前端框架Bootstrap所折服

    一 xff0c Bootstrap介绍 xff1a 一年前的我还沉浸在移动端各种适配和优化中不能自拔 xff0c 为了适配市场的各种分辨率 xff0c 我拿着谷歌百分比布局 xff0c 也有生成各中分辨率下的尺寸文件 xff0c 或通过测量
  • Mac安装Stable Diffusion教程【超详细教程】附带安装包

    Mac安装Stable Diffusion教程 本机配置Mac安装Stable Diffusion教程 配带官方说明重要注意事项安装所需文件已上传网盘自动安装新安装 xff1a 自动安装现有安装 xff1a 下载稳定扩散模型故障排除Web
  • Flutter三天学习基础-------一天搞定项目

    Flutter学习三天搞定项目 2019年 xff0c 相继推出了flutter免费视频教学 希望能够帮助初学者 最终搞定b站一二级界面 xff1a https space bilibili com 265453330 spm id fro
  • 玩转python(一)——微信远程控制电脑

    1 综述 这是一个挺有意思的 python 程序 xff0c 基于 itchat 实现微信控制电脑 你可以通过在微信发送命令 xff0c 来拍摄当前电脑的使用者 xff0c 然后图片会发送到你的微信上 甚至你可以发送命令来远程关闭电脑 效果
  • Centos7 离线安装 K3S

    基于版本 v1 19 3 43 k3s2 1 下载相关资源 k3s airgap imagesk3s 二进制文件k3s 安装脚本docker rpm包 含containerd io docker ce docker cli containe
  • Linus 2020-11月最快Intel游戏电脑 清单

    视频链接 xff1a https www bilibili com video BV1Ey4y167YM 配件型号备注CPUi9 10900K5 7GHz 现在比起AU差些主板华硕Maximus XII Extreme超频主板内存镁光 Ba
  • Linuz目前最快AMD 游戏电脑! 截至2020年11月29日

    视频地址 xff1a https www bilibili com video BV1ip4y167L5 这一次是DigitalStorm直接发的整机AventumX xff0c 配置如下 xff1a 硬件型号备注CPURyzen 5950
  • 运维大镖客:Linux 合规配置脚本第一版

    还在为Linux合规配置检查不过关而发愁吗 xff1f 最新的配置合规脚本来啦 xff01 20220609 作者注 xff1a 之后的脚本将会在新的网络空间安全付费专栏发布 xff0c 如需要更新的版本 xff0c 请移步专栏观看 spa
  • MongoDB 4.2 数据迁移与备份指南

    MongoDB 4 2 数据迁移与备份指南 来源于MongoDB Manual 4 2 https docs mongodb com v4 2 tutorial restore replica set from backup 原文 xff1
  • Minio 代理 Alibaba Cloud OSS

    Minio 代理 Alibaba Cloud OSS 在2017年12月份Minio引入Aliyun OSS 支持到master分支 xff0c 但是在2020年4月因为License问题导致阿里云OSS支持被移除 xff0c 后来2020
  • Rancher 2.4.x 单容器证书过期&证书轮换方法

    Rancher 2 4 x 官方文档之证书轮换 https rancher2 docs rancher cn docs rancher2 cluster admin certificate rotation index 错误现象 xff1a
  • Docker与Firewalld冲突怎么办?教你几招搞定docker网络

    docker ce默认会采用桥接网络 xff0c 它会通过iptables来管理它的容器之间的通信和容器与宿主机的通信 xff0c 如果同时启用了firewalld服务 xff0c 他们都会对iptables里面的转发链写入规则 xff0c
  • 当ChatGPT遇上StableDiffusion ChatGPT指导StableDiffusion绘画

    ChatGPT指导StableDiffusion 前言开始使用场景1 xff1a 繁华的街道场景2 xff1a 桥上的女生 项目及教程地址 xff0c 附GPT访问地址安装教程及安装包地址 xff1a 点我下载开源项目 xff1a 点我下载
  • CentOS7 使用RPMBUILD 编译 Openssh rpm包并安装

    若要进行生产环境的操作 xff0c 请务必看完整篇文档 实验环境 xff1a Centos7 4 离线系统 目前已经成功完成了openssh 9 1p1的编译 1 准备openssh源码包 在home目录开始 xff0c 设置工作目录 sp
  • Linus工作室 2021年 PB级存储方案

    来自于加拿大Linux 工作室 本文章仅整理内容 xff0c 另外还有一些本人的理解 实际上这已经是Linux PB计划第二代了 xff0c 比第一代更加NB 原视频地址 xff1a https www bilibili com video
  • 搭建本地yum repo

    在一些离线环境中无法使用在线的yum repo xff0c 只能使用本地的yum仓库 搭建的方式有如下几种 xff1a 使用本地meida使用本地media搭建远程服务器自建repo mirror xff08 施工中 xff09 1 使用本
  • Linux 系统安全加固篇之安全加固脚本

    该专栏内的脚本都会定期更新 xff0c 请注意变化 脚本适用于Centos 7 x系列 xff0c 同样支持Redhat 7 x系列 使用之前建议通读脚本注释 xff0c 并确认不会影响你现在在用的业务 注意脚本内部包含一定的参数 xff0
  • Docker导出正在使用中的镜像

    Docker 导出正在使用中的容器镜像 span class token comment xff01 bin sh span span class token assign left variable IMAGE DIR span span
  • Windows 10 数据恢复与预防数据丢失指南

    Windows 数据恢复与预防数据丢失指南 这个思路适合所有的windows版本 xff0c 但是有些数据恢复软件只能兼容新版系统 xff0c 这些不在我们的讨论范围内 如果你在使用电脑时不慎删除了一个重要的文件 xff0c 那么你可以在你

随机推荐