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

这篇具有很好参考价值的文章主要介绍了使用pytorch查看中间层特征矩阵以及卷积核参数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

使用pytorch查看中间层特征矩阵以及卷积核参数,pytorch,矩阵,深度学习

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

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

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

使用pytorch查看中间层特征矩阵以及卷积核参数,pytorch,矩阵,深度学习

使用pytorch查看中间层特征矩阵以及卷积核参数,pytorch,矩阵,深度学习

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

2实例化模型

使用pytorch查看中间层特征矩阵以及卷积核参数,pytorch,矩阵,深度学习

3载入之前的模型参数

使用pytorch查看中间层特征矩阵以及卷积核参数,pytorch,矩阵,深度学习

4载入一张图片

5对图片进行预处理

6增加一个batch维度

使用pytorch查看中间层特征矩阵以及卷积核参数,pytorch,矩阵,深度学习

7输入模型进行正向传播

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

使用pytorch查看中间层特征矩阵以及卷积核参数,pytorch,矩阵,深度学习

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

使用pytorch查看中间层特征矩阵以及卷积核参数,pytorch,矩阵,深度学习

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

使用pytorch查看中间层特征矩阵以及卷积核参数,pytorch,矩阵,深度学习

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

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

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

回到analyze_feature_map.py

使用pytorch查看中间层特征矩阵以及卷积核参数,pytorch,矩阵,深度学习

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

然后transpose一下通道顺序

使用pytorch查看中间层特征矩阵以及卷积核参数,pytorch,矩阵,深度学习

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

使用pytorch查看中间层特征矩阵以及卷积核参数,pytorch,矩阵,深度学习

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

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

使用pytorch查看中间层特征矩阵以及卷积核参数,pytorch,矩阵,深度学习

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

可以和原图对比一下:  

使用pytorch查看中间层特征矩阵以及卷积核参数,pytorch,矩阵,深度学习

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

使用pytorch查看中间层特征矩阵以及卷积核参数,pytorch,矩阵,深度学习

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

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

如果不加cmap=gray:

使用pytorch查看中间层特征矩阵以及卷积核参数,pytorch,矩阵,深度学习

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

使用pytorch查看中间层特征矩阵以及卷积核参数,pytorch,矩阵,深度学习

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

使用pytorch查看中间层特征矩阵以及卷积核参数,pytorch,矩阵,深度学习

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

使用pytorch查看中间层特征矩阵以及卷积核参数,pytorch,矩阵,深度学习

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

使用pytorch查看中间层特征矩阵以及卷积核参数,pytorch,矩阵,深度学习

使用pytorch查看中间层特征矩阵以及卷积核参数,pytorch,矩阵,深度学习

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

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

使用pytorch查看中间层特征矩阵以及卷积核参数,pytorch,矩阵,深度学习

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

另外,如果B站视频分辨率不太好,感觉跟全屏时的清晰度差很多,但是不全屏的话就截图都截不清楚,那么就拖拽网页页面左右划拉一下试试,就会变清晰文章来源地址https://www.toymoban.com/news/detail-767212.html

到了这里,关于使用pytorch查看中间层特征矩阵以及卷积核参数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • pytorch对中间特征层可视化方案

    本文主要介绍如何使用pytorch获得已经训练好的网络的中间特征层,并将其转化为热力图的简单方法 效果图 1、在原本的test代码上进行修改 2、随便写一个钩子函数(具体了解可以搜索“pytorch中的钩子(Hook)有何作用?”) 3、然后注册一下钩子函数(在你需要保存的卷积层进行

    2024年02月13日
    浏览(63)
  • 使用Pytorch实现VGGNet(含VGGNet特征整理)

    VGGNet 的主要特点: 采用3x3的小卷积核 将模型提升到11-19层 进一步提升了模型的泛化能力 模型结构相对简洁 VGGNet主要解决了以下几个问题: 首先在当时的卷积神经网络中网络结构越深网络表现的性能越好,但同时也会带来较大的复杂度和较大的模型参数问题,VGGNet通过设计

    2024年02月04日
    浏览(46)
  • pytorch中使用TensorBoard进行可视化Loss及特征图

    安装TensorBoard 导入TensorBoard 实例化TensorBoard 训练过程中的loss,accuracy等都是标量,都可以用TensorBoard中的add_scalar来显示,add_scalar方法中第一个参数表示表的名字,第二个参数表示的是你要存的值,第三个参数可以理解为x轴坐标。 终端输入tensorboard --logdir=logs,开启TensorBoard

    2023年04月12日
    浏览(56)
  • (done) Positive Semidefinite Matrices 什么是半正定矩阵?如何证明一个矩阵是半正定矩阵? 可以使用特征值

    参考视频:https://www.bilibili.com/video/BV1Vg41197ew/?vd_source=7a1a0bc74158c6993c7355c5490fc600 参考资料(半正定矩阵的定义):https://baike.baidu.com/item/%E5%8D%8A%E6%AD%A3%E5%AE%9A%E7%9F%A9%E9%98%B5/2152711?fr=ge_ala 看看半正定矩阵的定义: 正定矩阵是 0,半正定矩阵是 = 0 根据定义来看,半正定矩阵也有 “实

    2024年02月22日
    浏览(53)
  • 神经网络输出中间特征图

    在进行神经网络的训练过程中,会生成不同的特征图信息,这些特征图中包含大量图像信息,如轮廓信息,细节信息等,然而,我们一般只获取最终的输出结果,至于中间的特征图则很少关注。 前两天师弟突然问起了这个问题,但我也没有头绪,后来和师弟研究了一下,大概

    2024年02月09日
    浏览(38)
  • PyTorch中查看GPU使用情况以及一些重要函数

    pytorch多卡相应内容学习总结,本着勤能补拙的态度,希望能够更好地提升自我能力。 CPU 查询 GPU 查询 lspci 是一种实用程序,用于在系统中显示有关pci总线的信息以及连接到它们的设备。 CUDA 版本 以 nvcc -V 查询为主 实时查看 nvidia-smi 显卡信息查看 平时在模型中可以增肌信息

    2023年04月09日
    浏览(77)
  • 如何查看自己使用的Python、CUDA、Pytorch、TensorFlow的版本(Windows)

    1、查看python版本 1)键盘 windows+R键,弹出如下:2、  2)点击确定,弹出如下:  3)输入python,便可输出python版本 2、查看cuda版本 1)打开pycharm编辑器 2)输入: 3)运行后输出:   3、查看pytorch版本 1)打开pycharm编辑器 2)输入: 3)运行后输出:     4、查看tensorflow版本

    2024年02月08日
    浏览(51)
  • python-pytorch 如何使用python库Netron查看模型结构(以pytorch官网模型为例)0.9.2

    2024年4月27日14:32:30----0.9.2 以pytorch官网的tutorial为观察对象,链接是https://pytorch.org/tutorials/intermediate/char_rnn_classification_tutorial.html 模型代码如下 pip install netron即可 其他安装方式参考链接 https://blog.csdn.net/m0_49963403/article/details/136242313 随便找一个地方打个点,如sample方法中 结果

    2024年04月29日
    浏览(33)
  • 机器学习中高维组合特征的处理方法+推荐系统使用矩阵分解为用户推荐的原理解析,《百面机器学习》学习笔记

    为了提高复杂关系的拟合能力,在特征工程中经常会把一阶离散特征进行组合,构成高阶组合特征。 假设有A B两组特征,C为受到A B两种特征影响的因素,且对特征A来说,其有 A i , i ∈ [ 0 , 1 ] {A^i,iin [0,1]} A i , i ∈ [ 0 , 1 ] 两种特征取值。同时,对于特征B来说,其有 B j , j ∈

    2024年02月05日
    浏览(45)
  • 《数值分析》-3-特征值与特征矩阵

    搜索技术的很多方面的知识发现都依赖于特征值或奇异值问题,涉及到特征值计算问题。 计算特征值没有直接的方法。 定位特征值的计算方法基于幂迭代的思想,这是求解特征值的一类迭代方法。该思想的一个复杂版本被称为QR算法,是确定典型矩阵所有特征值的一般方法。

    2024年02月08日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包