当前位置: 首页 > ai >正文

CAM可视化卷积神经网络

CAM全称 Class Activation Mapping,分类热力图。目的帮助我们理解模型在预测时关注图像的哪些部分,验证模型的可解释性。

图像分类

回忆下,在CNN的最后一个卷积层之后,用全局平均池化(池化这个词不好,一看到这个我想到水池,化粪池,其实功能是粗采样,你们说对不对吧)得到每个通道的平均值,然后通过一个全连接层输出分类结果。

输入图像->卷积层->特征图->全局平均池化层->全连接层->分类得分

全连接层里是权重矩阵,对吧,就是一个分类有一个权重向量,每次反向更新。权重向量长度就是通道数。

我们算出得分是哪个分类,然后取那个分类的权重向量。那么我们将这些权重乘以原始的特征图,得到一个热力图,表示模型对图像不同区域的关注程度。

注意:这里是乘以特征图,并非原图。

【权重乘以所有通道的特征图后,怎么看】

比如通道512个,每个通道是一张28*28的图。权重向量shape是[512]。特征图本身啥看不出,

你要把特征图*权重后相加,再归一化,再叠加到原始图上,才能看出效果。我的最简单的,特征图还能看出苹果的噢。

【啥是热力图】

import cv2
import numpy as npsize=500
cam = np.zeros((size,size))center_x,center_y=200,200
radius=100for i in range(size):for j in range(size):distance = np.sqrt((i-center_x)**2 + (j-center_y)**2)if distance <= radius:cam[i,j] = np.exp(-distance**2/(2 * (radius/2)**2))
cam = np.uint8(255*cam)heatmap = cv2.applyColorMap(cam,cv2.COLORMAP_TURBO)img = cv2.imread("d:\\aaaa.jpg")overlay= cv2.addWeighted(heatmap,0.4,img,0.6,0)
cv2.imshow("overlay image",overlay)
cv2.waitKey(0)
cv2.destoryAllWindows()

图像分类

http://www.xdnf.cn/news/18359.html

相关文章:

  • 深度学习:入门简介
  • AI推理革命:从Sequential Thinking到Agentic AI的演进之路——揭秘大语言模型思维进化的四重奏
  • 上海人工智能实验室开源基于Intern-S1同等技术的轻量化开源多模态推理模型
  • logback-spring.xml 文件
  • 车载 GPS 与手机导航的终极对决:谁在复杂路况下更胜一筹?
  • UE5 将纯蓝图项目转为 C++ 项目
  • MongoDB 完整指南
  • 安全运维过程文档体系规范
  • 如何轻松永久删除 Android 手机上的短信
  • Android音频学习(十四)——加载音频设备
  • 什么是Jmeter?Jmeter使用的原理步骤是什么?
  • day38-HTTP
  • 第41周——人脸图像生成
  • 携程旅游的 AI 网关落地实践
  • 计算机网络技术-第七章
  • Ingress控制器深度解析:Nginx与Traefik实战指南
  • Java的运行时数据区
  • ICMP 协议分析
  • 从零到一:RAGFlow 本地部署全攻略
  • JeeSite V5.13.0 发布,升级 Spring Boot 3.5,Cloud 2025,AI 1.0,Vite 7
  • 数据结构-HashMap
  • Vue2+Vue3前端开发_Day5
  • 【neo4j】安装使用教程
  • lesson44:Redis 数据库全解析:从数据类型到高级应用
  • 计算机网络:网络基础、TCP编程
  • 如何自定义一个SpringBoot Starter
  • 密码管理中明文密码与空密码的危害与预防
  • 继承(Inheritance)
  • 机器学习集成算法与K-means聚类
  • Pytest 插件怎么写:从0开发一个你自己的插件