使用pytorch查看中间层特征矩阵以及卷积核参数

这篇是我对哔哩哔哩up主 @霹雳吧啦Wz 的视频的文字版学习笔记 感谢他对知识的分享

1和4是之前讲过的alexnet和resnet模型

2是分析中间层特征矩阵的脚本

3是查看卷积核参数的脚本

1设置预处理方法 和图像训练的时候用的预处理方法保持一致

2实例化模型

3载入之前的模型参数

4载入一张图片

5对图片进行预处理

6增加一个batch维度

7输入模型进行正向传播

如果print model可以看到模型信息:

模型虽然用的是alexnet,但是关于正向传播的代码做了一些修改:

因为我们目的是得到中间层的特征矩阵。

希望能遍历第一、第二、第三个卷积层并得到特征矩阵。

首先通过一个循环遍历我们features的层结构,通过named_children这个方法遍历features下面的所有层结构。

对于每一个层结构都用x=module(x)以实现正向传播的过程

回到analyze_feature_map.py

squeeze一下因为我们输入只有一个图片所以我们不需要N这个维度

然后transpose一下通道顺序

im[:,:,i]通过切片的方法获取每一个channel的特征矩阵

cmap='gray'表示用灰度图的方法来表示

如果不加这个,那默认就会用蓝色和绿色来替代灰度图的黑色和白色来展示

这就是我们第一个卷积层输出的特征矩阵的前12个通道的特征图

可以和原图对比一下:  

卷积层2所输出的特征矩阵:

可以看到有的通道是纯黑的,也就是说有的卷积核是没有起到任何作用的,就是没有学到东西

卷积层越往后抽象程度越高

如果不加cmap=gray:

接下来我们看一下如何查看网络卷积层的卷积核的信息

我们其实可以直接通过torch.load载入模型参数,返回的是一个dict字典形式,key是层名称value就是该层的训练信息。

state_dict() 来获取模型中所有可训练参数的字典keys()获取所有具有参数的层结构的名称

只有卷积层有训练参数,relu和maxpool2d是没有训练参数的

卷积核的个数对应输出矩阵的深度

卷积核的通道数对应输入矩阵的深度

这一句是为了排除编程结构的一些不需要的信息

另外,如果B站视频分辨率不太好,感觉跟全屏时的清晰度差很多,但是不全屏的话就截图都截不清楚,那么就拖拽网页页面左右划拉一下试试,就会变清晰

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/229293.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C#网络编程(System.Net命名空间)

目录 一、System.Net命名空间 1.Dns类 (1)示例源码 (2)生成效果 2.IPAddress类 (1)示例源码 (2)生成效果 3.IPEndPoint类 (1) 示例源码 &#xff0…

计算机方向的一些重要缩写和简介

参考: 深度学习四大类网络模型 干货|机器学习超全综述! 机器学习ML、卷积神经网络CNN、循环神经网络RNN、马尔可夫蒙特卡罗MCMC、生成对抗网络GAN、图神经网络GNN——人工智能经典算法 MLP(Multi Layer Perseption)用在神经网络中…

Conda常用命令总结

使用conda或anaconda的小伙伴们都知道,图形界面时不靠谱的,而在命令行下,所有的操作就会稳定很多,且极少出现问题。因此,熟记conda的命令行就变得十分有用。但对于我这样近50岁依旧奋斗在代码第一线的大龄程序员而已&a…

作业12.8

1. 使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数。将登录按钮使用qt5版本的连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为"admin",密码是…

HarmonyOS Developer——鸿蒙【构建第一个JS应用(FA模型)】

创建JS工程 JS工程目录结构 构建第一个页面 构建第二个页面 实现页面间的跳转 使用真机运行应用 说明 为确保运行效果,本文以使用DevEco Studio 3.1 Release版本为例,点击此处获取下载链接。 创建JS工程 若首次打开DevEco Studio,请点击…

C# Solidworks二次开发:选择管理器相关的API介绍

今天在讲述主要内容之前,先说一个不太相关的问题。 我之前在其他文章中看到有一些朋友在问为什么获取到的点位数据需要乘以1000进行单位转换,其实原因是这样的,在所有使用的API中如果没有特殊说明,所有的长度单位都是米&#xff…

解读链上经济“一等公民”:加密AI代理的优势和前沿应用

机器人正在成为加密经济的“一等公民”,最近的案例就能印证这一趋势。 搜索者(Searchers)部署像Jaredfromsubway.eth这样的机器人,利用真人用户对便利的渴望在DEX抢先交易。Banana Gun和Maestro允许真人用户通过Telegram的便利进…

网络编程基础api

1. IP 协议 1.1 IP 分片 (1)IP 分片和重组主要依靠 IP 头部三个字段:数据报标识、标志和片偏移 以太网帧的 MTU 是 1500 字节; 一个每个分片都有自己的 IP 头部,它们都具有相同的标识值,有不同的片偏移…

MVC、MVP、MVVM模式的区别

前言:这三个表现层框架设计模式是依次进化而形成MVC—>MVP—>MVVM。在以前传统的开发模式当中即MVC模式,前端人员只负责Model(数据库)、 View(视图)和 Controller /Presenter/ViewModel(控…

【SQL开发实战技巧】系列(四十八):Oracle12C常用新特性☞多分区操作和管理

系列文章目录 【SQL开发实战技巧】系列(一):关于SQL不得不说的那些事 【SQL开发实战技巧】系列(二):简单单表查询 【SQL开发实战技巧】系列(三):SQL排序的那些事 【SQL开发实战技巧…

总线(什么是南北桥?您都用过哪些总线?)

什么是总线? 计算机系统中的总线(Bus)是指计算机设备和设备之间传输信息的公共数据通道,是连接计算机硬件系统内多种设备的通信线路,它的一个重要特征是由总线上的所有设备共享,因此可以将计算机系统内的多…

ky10 x86 一键安装wvp gb28181 pro平台

下载代码 git clone https://gitcode.net/zengliguang/ky10_x86_wvp_record_offline_install.gitfinalshell mobaxterm 修改服务器ip 查看服务器ip ip a 在脚本文件中修改服务器ip 执行安装脚本 切换到root用户 sudo su cd ky10_x86_wvp_record_of

Qt12.8

使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为"admin",密码是否为…

代码随想录算法训练营 --- 第五十九天

今天同样是单调栈,第二题很重要。 第一题: 简介: 本题可以说和上一题很是相似,只是有一点不同,数组是循环的。本题有两种巧妙地解法,都不难。 第一种方法(也是第一个想出来的方法&#xff09…

会个postman面试就要15k,怎么敢的啊!

postman应用实战 下面以微信公众平台举例: 第一步、先创建文件夹 第二步、打开postman,创建collections 第三步、设置环境变量,全局变量 设置环境变量;如下图: 设置全局变量;如下图: 第四步、…

机器人阻抗控制直观(图示理解)与控制框架/架构

在刚性碰撞下,机器人的阻抗调节可以使其更好地适应外部环境。具体来说,通过建立力与位移之间的关系,并改变阻抗参数,可以控制机器人对外部力的响应。 在具体实现上,可以采用基于位置的阻抗控制或基于力的阻抗控制。基于…

机器学习---集成学习的初步理解

1. 集成学习 集成学习(ensemble learning)是现在非常火爆的机器学习方法。它本身不是一个单独的机器学 习算法,而是通过构建并结合多个机器学习器来完成学习任务。也就是我们常说的“博采众长”。集 成学习可以用于分类问题集成,回归问题集成&#xff…

查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息

文章目录 摘要1. 查询CPU使用率命令:top -bn1 | grep \"Cpu(s)\" | awk {split($0,arr,\" \");print 100-arr[8]}2. 查询内存命令(单位:G):top -bn1 | grep \"KiB Mem\" | awk {split($…

【C语言】函数递归详解(一)

目录 1.什么是递归: 1.1递归的思想: 1.2递归的限制条件: 2.递归举例: 2.1举例1:求n的阶乘: 2.1.1 分析和代码实现: 2.1.2图示递归过程: 2.2举例2:顺序打印一个整数的…

设计并实现一个多线程图书馆管理系统,涉及数据库操作

没有实现全部功能,希望路过的大佬,可以实现全部功能,在评论区聊聊 创建数据库library-demo CREATE DATABASE library-demo创建图书表book CREATE TABLE book (bookId int(11) NOT NULL AUTO_INCREMENT COMMENT 图书ID,bookName varchar(15)…