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 或 modified output
输入仅包含传递给模块的位置参数。 关键字参数不会传递给钩子,只会传递给
forward
。 钩子可以修改输出。它可以就地修改输入,但由于这是在调用forward()
之后调用的,因此不会对forward产生影响。- Parameters
钩子 (可调用对象) – 要注册的用户定义钩子。
always_call (bool) – 如果
True
,无论在调用模块时是否引发异常,hook
都将运行。 默认值:False
- Returns
一个可以用于通过调用
handle.remove()
来移除添加的钩子的句柄- Return type
torch.utils.hooks.RemovableHandle
此钩子将在使用
register_forward_hook
注册的特定模块钩子之前执行。