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

day46_Grad-CAM@浙大疏锦行

Day 46 Grad-CAM 与 Hook 机制@浙大疏锦行

1. Hook 机制 (钩子函数)

概念

Hook 本质上是一种回调函数 (Callback),允许我们在不修改模型原始代码结构的情况下,动态地“监听”或“修改”模型内部中间层的输入、输出或梯度。

作用

  • 调试与可视化:查看中间层特征图(Feature Maps)。
  • 特征提取:提取高层语义特征用于下游任务。
  • 梯度分析:监控或裁剪梯度。
  • 可解释性:如 Grad-CAM 的实现。

PyTorch 中的 Hook 类型

  1. Module Hooks (针对层/模块)
    • register_forward_hook(hook_func): 在前向传播结束后调用。
      • hook_func(module, input, output): 可以获取该层的输入和输出。
    • register_backward_hook(hook_func): 在反向传播结束后调用。
      • hook_func(module, grad_input, grad_output): 可以获取该层的输入梯度和输出梯度。
  2. Tensor Hooks (针对张量)
    • tensor.register_hook(hook_func): 在计算该张量的梯度时调用,常用于修改梯度。

Grad-CAM (Gradient-weighted Class Activation Mapping)

简介

Grad-CAM 是一种可视化技术,用于解释卷积神经网络(CNN)的决策依据。它能生成热力图 (Heatmap),高亮显示图像中对模型预测结果贡献最大的区域(即“模型在看哪里”)。

原理

Grad-CAM 利用梯度信息来衡量最后一个卷积层中每个通道(Feature Map)对目标类别的重要性。

主要步骤:

  1. 前向传播:获取目标卷积层(通常是最后一层卷积)的特征图 (Activations)
  2. 反向传播:计算目标类别分数相对于该层特征图的梯度 (Gradients)
  3. 计算权重:对梯度进行全局平均池化 (Global Average Pooling),得到每个通道的重要性权重α k \alpha_kαk
  4. 加权求和:将权重与对应的特征图相乘并求和。
  5. ReLU 激活:应用 ReLU 函数,只保留对类别有正向贡献的区域(去除负值)。
    L G r a d − C A M c = R e L U ( ∑ k α k c A k ) L_{Grad-CAM}^c = ReLU(\sum_k \alpha_k^c A^k)LGradCAMc=ReLU(kαkcAk)
  6. 可视化:将生成的热力图上采样到原图大小,并叠加显示。

代码实现关键点

  • Hook
    • 使用forward_hook捕获特征图activations
    • 使用backward_hook捕获梯度gradients
  • 反向传播触发
    • 手动构造一个one-hot向量(目标类别为 1,其余为 0)。
    • 执行output.backward(gradient=one_hot)来计算针对特定类别的梯度。

@浙大疏锦行

http://www.zskr.cn/news/143542.html

相关文章:

  • 2026仍考RHCE?别被“全能”标签带偏,这篇给你真实答案
  • 多软件协同调度规则设计:避免依赖冲突的黄金法则
  • 8 个降AI率工具推荐,专科生必看!
  • Napi::Array
  • 关于单片机ADC数据采集方面的心得。
  • 电商
  • WebPages 全局概述
  • 鸿蒙应用能耗优化实战:如何避免引用不当引发的后台运行
  • 观潮有感
  • Docker Machine 深入解析
  • 【回声抵消】基于matlab NLMS回声抵消和双端监测仿真【含Matlab源码 14758期】
  • 基于90分钟Maven项目实战入门——邮件群发工具(模拟板)
  • 老己,远程办公软件用对了吗?
  • 知网AIGC疑似度居高不下?有这个降AI率工具就不用愁例如!
  • Springboot3 Mybatis-plus 3.5.9 - 详解
  • Python 中的并发
  • 基于大模型与FastAPI构建文本转SQL应用
  • 基于SpringBoot的智慧农家乐管理系统毕业设计项目源码
  • Bootstrap4 卡片布局指南
  • SVG 路径详解
  • 【人工智能】特征处理
  • 东方博宜OJ 1307:数的计数 ← 递归(内含显示的循环结构设计)
  • 谷歌发布Gemma Scope 2,钉钉推出AI操作系统与硬件,苹果初代智能眼镜细节曝光
  • Chromebook也能跑!GPT-4o驱动的个性化学习路径生成器,初中数学推荐准确率达89%
  • 挑企业微信 SCRM 迷茫?从私域转化需求切入,微伴助手凭什么是第一选择
  • gb_蓝桥杯_基础语法_数据容器_字典
  • override
  • 【人工智能】机器学习
  • 【人工智能】机器学习
  • 020.二叉树匹配问题