pytorch对网络层的增,删, 改, 修改预训练模型结构

#下载模型参数
model.load_state_dict(torch.load('model.pth'))#再加载网络的参数

torch.load('model.pth')是获得网络参数

1.我们使用vgg11网络做示例, 看一下网络结构:

加载本地的模型:

vgg16 = models.vgg16(pretrained=False)

#打印出预训练模型的参数
vgg16.load_state_dict(torch.load('vgg16-397923af.pth'))

加载库中的模型

import torch
import torch.nn as nn
from torchvision import models

net = models.vgg11(pretrained=True)
print(net)

pytorch对网络层的增,删, 改, 修改预训练模型结构

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)

pytorch对网络层的增,删, 改, 修改预训练模型结构
net.classifier.add_module('Linear', nn.Linear(1000, 10))
print(net)

pytorch对网络层的增,删, 改, 修改预训练模型结构

2)(1)修改网络中的某一层(features 结点举例):

net.features[8] = nn.Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
print(net)

pytorch对网络层的增,删, 改, 修改预训练模型结构

2)(2)修改网络中的某一层(classifier结点举例):

net.classifier[6] = nn.Linear(1000, 5)
print(net)

注意这里我尝试对Linear这一层进行更新, 但是Linear名字是字符串, 提取不出来,所以应该在之前添加网络时候, 名字不要取字符串, 否则会报错 ‘ ‘str’ object cannot be interpreted as an integer’。

pytorch对网络层的增,删, 改, 修改预训练模型结构

3)(1) 网络层的删除(features举例) classifier结点的操作相同。

直接使用nn.Sequential()对改层设置为空即可

net.features[13] = nn.Sequential()
print(net)

pytorch对网络层的增,删, 改, 修改预训练模型结构

4)冻结网络中某些层 (直接使该层的requires_grad = False)即可, 这样在反向传播的时候,不会更新该层的参数

#冻结指定层的预训练参数:
net.feature[26].weight.requires_grad = False

5). 第二种对网络结构的操作方法:

net.features = nn.Sequential(*list(net.features.children())[:-4])

可以看到后面4层被去除了, 就是说可以使用列表切片的方法来删除网络层

net.classifier 对应 net.classifier.children()

net.features 对应 net.features.children()

pytorch对网络层的增,删, 改, 修改预训练模型结构
  1. 先加载网络结构
自己的模型, model的类要有定义才可以, 如果在其他.py文件中,可以导入文件,然后用文件中的类实例化对象。
model = torch.load(PATH)

2.再加载网络参数

下载模型参数

model.load_state_dict(torch.load('model.pth'))#再加载网络的参数

torch.load('model.pth')是获得网络参数

Original: https://blog.csdn.net/qq_53345829/article/details/124641236
Author: -周-
Title: pytorch对网络层的增,删, 改, 修改预训练模型结构

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/672602/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 新基建之人工智能认知智能发展新阶段

    前言 城市新型基础设施建设是城市化发展的载体,也是城市化发展的需求。当前我国城 镇化进程的发展规模和速度令人瞩目,2019 年我国城镇化率达到 60.6%。然而,与美、日等 发达经…

    人工智能 2023年5月28日
    068
  • matlab-day04

    在MATLAB中绘制函数图形的步骤如下: 先定义变量 x,通过指定的变量 x 值的范围,该函数被绘制; 然后定义函数, y = f(x); 最后调用 plot 命令,如 plot(…

    人工智能 2023年6月22日
    069
  • 【云原生 • Kubernetes】一文掌握 k8s 包管理工具 Helm

    本文导读 * – 一、为什么要引入 Helm – + 1. Helm 的应用场景 + 2. 使用 Helm 可以解决哪些问题 – 二、Helm …

    人工智能 2023年6月2日
    092
  • ci发什么音标_语音识别科普篇-术语定义-音素/音节/音标

    一.音素和国际音标 1.什么是音素(phone):音素是语音的最小单位。 音素是根据语音的自然属性划分出来的最小语音单位。从声学性质来看,音素是从音质角度划分出来的最小语音单位。从…

    人工智能 2023年5月27日
    087
  • 数据仓库基本知识

    目录 1.数据仓库 1.1 数据仓库起源 1.1.1 联机事务处理系统(On-Line Transaction Processing,OLTP) 1.1.2 联机分析处理系统(On…

    人工智能 2023年7月16日
    067
  • PixelShuffle原理笔记(paper,pytorch实现)

    pixel shuffer是一种图像上采样的方法,参考paper 它在Pytorch中的实现为 pixel_shuffle = torch.nn.PixelShuffle(r) o…

    人工智能 2023年7月21日
    095
  • 目标检测算法的分类和优缺点

    随着今年来科学技术的发展,尤其是人工智能和大数据技术的不断发展,不断应用于生活中的各个领域,给人们的生活带来方便和便利,深度学习这门技术也是越来越重要,目标检测也是深度学习的一个应…

    人工智能 2023年6月17日
    0145
  • 维基百科的语料库下载以及信息提取笔记

    中文语料库一般都是极为稀少的,要进行中文词向量的训练可能是极为困难的,这时候我们需要使用中文维基百科来进行词向量的训练。 1-1、中文维基百科的下载 1-2、抽取正文内容,繁体转换…

    人工智能 2023年5月30日
    064
  • opencv+gpu硬解码

    啊哦~你想找的内容离你而去了哦 内容不存在,可能为如下原因导致: ① 内容还在审核中 ② 内容以前存在,但是由于不符合新 的规定而被删除 ③ 内容地址错误 ④ 作者删除了内容。 可…

    人工智能 2023年6月2日
    0101
  • 【Day4】语音识别(音频转文字)

    语音识别的三种解决方案: [En] Three solutions for speech recognition:原本用途:本来是要求从视频中识别语音,然后把文字内容提取出来,结果…

    人工智能 2023年5月23日
    067
  • 麦克风阵列声源定位效果测试

    如果以下图片不清楚,可以直接访问淘宝链接,并从链接中的网盘信息中拉取。如果你从这个链接看到购买,你可以告诉客服我可以便宜50元。 [En] If the following pic…

    人工智能 2023年5月27日
    089
  • 聚类系列算法高级(一)16

    聚类算法 1、聚类介绍 1.1、聚类作用 知识发现 发现事物之间的潜在关系 异常值检测 特征提取 数据压缩的例子 1.2、有监督与无监督学习 有监督: 给定训练集 X 和 标签Y …

    人工智能 2023年6月3日
    080
  • 【深度学习】手写数字识别Tensorflow2实验报告

    实验一:手写数字识别 一、实验目的 利用深度学习实现手写数字识别,当输入一张手写图片后,能够准确的识别出该图片中数字是几。输出内容是0、1、2、3、4、5、6、7、8、9的其中一个…

    人工智能 2023年5月26日
    089
  • 目标检测中边框回归的直观理解 bbox regression

    目录 1 摘要 2 算法要解决的问题 3 从结果推原因,算法的实现思路 3.1 最直接的实现 3.2 合理性讨论 4 CNN的尺度不变性的影响 4.1 log函数的非线性问题 5 …

    人工智能 2023年6月17日
    072
  • Opencv项目实战:05 物体检测

    1,效果展示 为此,我专门还去查了查,怎么将视频转化为gif图,不知不觉中,我又多学会了一项技能。 OK!cool,效果很不错,今天需要搭配一些文件,都是可以从官网里找到的,那么我…

    人工智能 2023年6月25日
    077
  • 零零信安-D&D数据泄露报警日报【第42期】

    01概述 2022.11.10共发现匿名网络资讯信息43,355条;最近7天共发现匿名网络资讯信息458,957条,同比增长26.3%;最近30天共发现匿名网络资讯信息2,389,…

    人工智能 2023年6月29日
    071
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球