news 2026/6/9 21:19:17

day46_Grad-CAM@浙大疏锦行

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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)来计算针对特定类别的梯度。

@浙大疏锦行

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/6 16:15:52

低代码平台怎么选?这5款免费方案很友好

概述这两年不管是做业务系统、内部工具,还是想推进企业数字化,低代码平台真的帮了大忙。实际用下来会发现,选对平台,很多原本要排期开发的事情,用配置就能解决,而且成本压力也小很多。这里结合自己和身边朋…

作者头像 李华
网站建设 2026/6/7 1:39:57

HTML DOM 元素

HTML DOM 元素 HTML DOM(文档对象模型)是现代网页设计的基础。DOM 将 HTML 文档解析为一个树状结构,使得开发者能够通过编程方式操作网页内容、样式和行为。本文将深入探讨 HTML DOM 元素的概念、结构和用途。 概念 DOM(Document Object Model)是一种跨平台和语言独立的…

作者头像 李华
网站建设 2026/6/7 1:41:30

基于springboot+vue的微信小程序的公开课管理系统(源码+lw+部署文档+讲解等)

课题介绍随着在线教育的蓬勃发展,公开课因优质教育资源共享的特性备受青睐,但传统公开课管理模式存在课程信息分散、报名流程繁琐、学习进度难追踪、师生互动不便捷等痛点,影响教学效果与管理效率。本课题聚焦公开课教学管理场景,…

作者头像 李华
网站建设 2026/6/5 5:18:47

【配送路径规划】基于雪橇犬算法SDO求解带时间窗的骑手外卖配送路径规划问题(目标函数:最优路径成本 含服务客户数量 服务时间 载量 路径长度)附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室🍊个人信条:格物致知,完整Matlab代码获取及仿真…

作者头像 李华
网站建设 2026/6/5 14:26:58

挑企业微信 SCRM 迷茫?从私域转化需求切入,微伴助手凭什么是第一选择

现在用企业微信的老板越来越多,但不少人觉得 “不好用”—— 加客户慢、发消息没效果、员工离职带跑客户,问题一堆。其实不是企业微信本身不行,而是缺了合适的 “企业微信工具” 来补位。这些工具就像 “外挂”,能把企业微信的基础…

作者头像 李华
网站建设 2026/6/7 17:07:04

AI时代的技术债务管理:新工具与新方法

AI时代的技术债务管理:新工具与新方法关键词:AI时代、技术债务管理、新工具、新方法、软件开发摘要:在AI时代,软件开发面临着诸多新的挑战和机遇,技术债务管理也变得尤为重要。本文深入探讨了AI时代技术债务管理的相关内容&#x…

作者头像 李华