一、原理
pytorch 中的hook可以不必改变网络输入输出的结构,方便的获取、改变网络中间层变量的值和梯度。这个功能广泛用于可视化神经网络中间层的feature、gradient。从而诊断神经网络中可能出现的问题,分析网络的有效性。
这种方式会增加内存占用,因此采用hook保存中间变量的梯度。
register backward hook 和register forward hook 的作用是获取神经网络反响、前向传播过程中,各个模块输入端和输出端的梯度值。
二、Grad CAM++
相对于grad cam, grad cam++的优势为:
- 定位更准确
- 更适合同类多目标的情况