• Docs >
  • torch.nn >
  • torch.nn.modules.module.register_module_forward_hook
Shortcuts

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 注册的特定模块钩子之前执行。