2026/1/9 14:24:04
网站建设
项目流程
专利协会网站建设方案,东莞常平翔龙天地,成都市seo网站公司,wordpress 3d翻书特效Day 46 Grad-CAM 与 Hook 机制浙大疏锦行
1. Hook 机制 (钩子函数)
概念
Hook 本质上是一种回调函数 (Callback)#xff0c;允许我们在不修改模型原始代码结构的情况下#xff0c;动态地“监听”或“修改”模型内部中间层的输入、输出或梯度。
作用
调试与可视化#x…Day 46 Grad-CAM 与 Hook 机制浙大疏锦行1. Hook 机制 (钩子函数)概念Hook 本质上是一种回调函数 (Callback)允许我们在不修改模型原始代码结构的情况下动态地“监听”或“修改”模型内部中间层的输入、输出或梯度。作用调试与可视化查看中间层特征图Feature Maps。特征提取提取高层语义特征用于下游任务。梯度分析监控或裁剪梯度。可解释性如 Grad-CAM 的实现。PyTorch 中的 Hook 类型Module Hooks (针对层/模块)register_forward_hook(hook_func): 在前向传播结束后调用。hook_func(module, input, output): 可以获取该层的输入和输出。register_backward_hook(hook_func): 在反向传播结束后调用。hook_func(module, grad_input, grad_output): 可以获取该层的输入梯度和输出梯度。Tensor Hooks (针对张量)tensor.register_hook(hook_func): 在计算该张量的梯度时调用常用于修改梯度。Grad-CAM (Gradient-weighted Class Activation Mapping)简介Grad-CAM 是一种可视化技术用于解释卷积神经网络CNN的决策依据。它能生成热力图 (Heatmap)高亮显示图像中对模型预测结果贡献最大的区域即“模型在看哪里”。原理Grad-CAM 利用梯度信息来衡量最后一个卷积层中每个通道Feature Map对目标类别的重要性。主要步骤前向传播获取目标卷积层通常是最后一层卷积的特征图 (Activations)。反向传播计算目标类别分数相对于该层特征图的梯度 (Gradients)。计算权重对梯度进行全局平均池化 (Global Average Pooling)得到每个通道的重要性权重α k \alpha_kαk。加权求和将权重与对应的特征图相乘并求和。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)LGrad−CAMcReLU(k∑αkcAk)可视化将生成的热力图上采样到原图大小并叠加显示。代码实现关键点Hook使用forward_hook捕获特征图activations。使用backward_hook捕获梯度gradients。反向传播触发手动构造一个one-hot向量目标类别为 1其余为 0。执行output.backward(gradientone_hot)来计算针对特定类别的梯度。浙大疏锦行