一、hook函数概念
hook函数机制:不改变主体,实现额外功能,像一个挂件,挂钩,hook
1、torch.Tensor.register_hook(hook)
- 功能:注册一个反向传播hook函数
仅一个输入参数,为张量的梯度
计算图与梯度求导
2、torch.nn.Module.register_forward_hook
- 功能:注册module的前向传播hook函数
- 参数:
- module:当前网络层
- input:当前网络层输入数据
- output:当前网络层输出数据
3、torch.nn.Module.register_forward_pre_hook
- 功能:注册module前向传播前的hook函数
- 参数:
- module:当前网络层
- input:当前网络层输入数据
4、torch.nn.Module.register_backward_hook
- 功能:注册module反向传播的红藕库函数
- 参数:
- module:
- grad_input:当前网络层输入梯度数据
- grad_output:当前网络层输出梯度数据
二、hook函数与特征图提取
三、CAM(class activation map,类激活图)
Grad-CAM:CAM改进版,利用梯度作为特征图权重