MMLAB学习-Gard-CAM可视化方法
可视化模型背景
Gard-Cam
方法目的是为了看到在模型训练过程中,我们的模型到底在关注哪些地方。如果一个模型分类总是分别。那么它一定把重点关注到了不重要的特征,Gard-Cam
方法就可以看到在训练过程中我们的模型到底在关注哪些地方。
如图当我们在分类猫和狗时,通过Gard-Cam
就可以知道模型在分类的时候关注点在哪一块。
当把它分类成猫的时候,它关注的特征一定在猫的身上
当把它分类成狗的时候,它的关注点一定在狗的身上,如下图所示
原理
当我们经过一系列的卷积操作得到的特征图,我们想知道这些特征图上的哪些点对我们的分类作用更大,比如当分类是猫的时候,这些特征图上的哪些点对我分类是猫的时候贡献比较大。 我们这里可以遍历每个点,求每个点对我贡献有多大,这里其实就是一个反向传播,求每一个特征图每一个点对我分类的贡献值多大。就是我们需要做的事。
公式中的c表示是第几个类,yc表示是c这个类别的得分值,k的意思是第几个特征图,假设我们经过一系列的卷积得到了一个 7 * 7 * 512
的特征图,α(c,k)的意思是每个特征图的权重是多少,i,j
表示的是特征图的大小,Z
就是 i * j
。意思就是我们要计算每个特征图影响,每个特征图计算每个点的重要程度求和再取平均,这些值算的结果大,就说明对这个类别的贡献比较大。
这个公式就说最终算的结果,我们再把我们之前算的每个特征图的影响再放到特征图当中,就可以知道每个特征图发挥的作用,在做一个累加。再通过relu函数把所有大于0 的贡献都加入到图中。
这里简单来说如果第一张特征图A的地方贡献比较大,第二张特征图B的地方贡献比较大,加在一起这些地方的贡献程度也会相加,简单来说如下图所示,简单画了一下。
应用
这两张图片分别是护士和医生,当模型训练有偏差的时候可以看到,模型的注意力在脸上,显然模型的注意力不应该在脸上。当训练正常的时候可以看到模型关注的地方在医生和护士所使用工具上
mmcls任务中使用
配置参数
配置完参数就可以直接运行看结果
蓝色表示关注点比较少,偏红色表示关注点比较大
总结
一般在模型训练结束可以用GARD-CAM的方法查看我们的模型在训练过程中关注点是否正确,也可以查看模型中不同层数的关注点,但一般只关注最后一层。
原论文:Grad-CAM: Visual Explanations from Deep Networks
via Gradient-based Localization
MMLAB学习-Gard-CAM可视化方法相关推荐
- Python语言学习之图表可视化:python语言中可视化工具包的简介、安装、使用方法、经典案例之详细攻略
Python语言学习之图表可视化:python语言中可视化工具包的简介.安装.使用方法.经典案例之详细攻略 目录 python语言中可视化工具包的简介 python语言中可视化工具包的安装 pytho ...
- pytorch学习笔记十五:Hook函数与CAM可视化
一.Hook函数概念 Hook函数机制:不改变模型主体,实现额外功能,像一个挂件或挂钩等. 为什么需要这个函数呢?这与Pytorch的动态图计算机制有关,在动态图的计算过程中,一些中间变量会释放掉,比 ...
- Adapting Grad-CAM for Embedding Networks - 度量学习网络可视化方法(reid、人脸识别)
Adapting Grad-CAM for Embedding Networks TL;DR 基于 grad-cam 修改得到一种适配embedding网络的可视化方法,可以用于人脸识别.reid等任 ...
- InSAR学习(六)形变监测结果的可视化方法
本文将介绍几种常见的形变监测结果可视化方法,主要分为监测结果和误差可视化两种,监测结果又分为视线方向的监测结果和三维监测结果. 1 line-of-sight (LOS) direction 视线方向 ...
- 只需一次向前推导,深度神经网络可视化方法来了!(ECCVW 2022)
作者 | Ziyang Li 编辑 | 汽车人 点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷干货,即可获取 点击进入→自动驾驶之心技术交流群 导读 本文首次提出可学习的 ...
- CNN的一些可视化方法!
↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale推荐 作者:yishun@知乎,编辑:极市平台 来源丨https://zhua ...
- 别动不动就画折线图了,教你4种酷炫可视化方法
本文转自『机器之心编译』(almosthuman2014) 散点图.线图.直方图.条形图和箱形图,这些都是简单而强大的可视化方法,通过它们你可以对数据集有深刻的认识.在本文中,我们将看到另外 4 个数 ...
- 收藏 | CNN的一些可视化方法!
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 导读 对神经网络进行可视化分析不管是在学习上还是实际应用上都有很重 ...
- CNN 的一些可视化方法!
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达推荐阅读 42个pycharm使用技巧,瞬间从黑铁变王者Google ...
- CNN 的一些可视化方法
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者 | yishun@知乎 来源丨https://zhuanlan.zhihu.com/p/5368 ...
最新文章
- 计算机专业西电和大工怎么选,放弃985大连理工,选择211西安电子科大,其实很多人都错了...
- 为什么文件上传不了服务器上,文件上传存在服务器还是数据库
- ashx获取客户端excel文件_Spring Boot实现导出Excel功能
- ORACLE:RETURNING 子句
- 如何利用JavaScript的arguments对象实现用代码打印调用栈的需求
- 2017-2018-2 20179216 《网络攻防与实践》 SQL注入攻击
- python科赫曲线绘制正方形_Python数据处理从零开始----第四章(可视化)(14)使用seaborn绘制热图...
- ACM 整数划分(四)
- 开源项目管理系统:ProjectForge
- 计算机视觉测试数据集
- 信奥中的数学:微积分 高等数学 数学分析
- 新会计准则对传统会计理论的七大变革
- 三十、动名词短语 2
- SQLServer简繁互换
- linux unison数据同步,linux下unison双向数据实时同步
- Strategic game poj1463
- html onload不起作用,body标签onLoad执行无效,为何?
- oracle 按天数 均值,oracle 按天数统计数据
- 【刷题】洛谷 P2675 《瞿葩的数字游戏》T3-三角圣地
- 尚硅谷-微信小程序文档
热门文章
- 一般将来时语法课教案_一般将来时的被动语态语法课教学设计
- 友情链接查询工具 php源码,php 友情链接批量查询工具下载
- 经典题目-如何测试一个一次性纸杯
- python白月黑羽视频多线程笔记
- 在 Kubernetes 上快速测试 Citus 分布式 PostgreSQL 集群(分布式表,共置,引用表,列存储)...
- R语言数据框中创建新的变量的三种方法
- linux java -jar 使用
- Python爬虫:抓取智联招聘岗位信息和要求(基础版)
- java基于springboot+Vue+nodejs的高校网上二手闲置跳蚤市场 element
- Java 多线程线程安全(面试概念解答二)