torch.nn.modules.module.register_module_forward_hook¶
- torch.nn.modules.module.register_module_forward_hook(hook, *, always_call=False)[源代码]¶
为所有模块注册一个全局前向钩子。
警告
这会向 nn.module 模块添加全局状态,仅用于调试/分析目的。
每次
forward()
计算出输出后,都会调用该钩子。它应该具有以下签名hook(module, input, output) -> None or modified output
输入仅包含传递给模块的位置参数。关键字参数不会传递给钩子,而只会传递给
forward
。钩子可以修改输出。它可以就地修改输入,但这不会影响 forward,因为这是在调用forward()
后调用的。- 参数
hook (Callable) – 要注册的用户定义钩子。
always_call (bool) – 如果为
True
,则无论在调用模块时是否引发异常,都会运行hook
。默认值:False
- 返回值
一个句柄,可以通过调用
handle.remove()
来删除添加的钩子- 返回类型
torch.utils.hooks.RemovableHandle
此钩子将在使用
register_forward_hook
注册的特定模块钩子之前执行。