Hook函数概念
Hook函数机制:不改变主体,实现额外功能,像一个挂件,挂钩,hook
1、Tensor.register_hook
hook(grad) -> Tensor or None
功能: 注册一个反向传播hook函数
Hook函数仅一个输入参数,为张量的梯度
2、Module.register_forward_hook
hook(module, input, output) -> None
功能:注册module的前向传播hook函数
module:当前网络层
input:当前网络层输入数据
output:当前网络层输出数据
3、Module.register_forward_pre_hook
hook(module, input) -> None
功能:注册module前向传播前的hook函数
参数:
- module:当前网络层
- input:当前网络层输入数据
4、Module.register_backward_hook
hook(module, grad_input, grad_output) -> Tensor or None
功能:注册module反向传播前的hook函数
参数:
- module:当前网络层
- grad_input:当前网络层输入梯度数据
- grad_output: 当前网络层输出梯度数据
CAM and Grad_CAM
CAM: 类激活图,class activation map

本文深入解析PyTorch中的Hook函数机制,包括Tensor、Module的前向与反向传播Hook,以及CAM和Grad-CAM在类激活图中的应用。通过实例说明如何利用Hook函数在不改变主体的情况下实现额外功能。

被折叠的 条评论
为什么被折叠?



