torch.nn.modules.module.register_module_forward_hook
- torch.nn.modules.module.register_module_forward_hook(hook, *, with_kwargs=False, always_call=False)[source][source]
为所有模块注册全局前向钩子。
警告
这将为 nn.module 模块添加全局状态,仅用于调试/性能分析。
每当
forward()
计算输出后,都会调用此钩子。它应该具有以下签名:hook(module, input, output) -> None or modified output
输入仅包含传递给模块的位置参数。关键字参数不会传递给钩子,只会传递给
forward
。您可以可选地通过返回一个新值来修改模块的输出,该值将替换forward()
函数的输出。- 参数:
hook(可调用对象)- 用户定义的将被注册的钩子。
always_call (bool) – 如果
True
,则无论在调用 Module 时是否抛出异常,hook
都将被执行。默认:False
- 返回值:
一个可以用来通过调用
handle.remove()
移除已添加钩子的句柄。- 返回类型:
torch.utils.hooks.RemovableHandle
此钩子将在注册
register_forward_hook
的特定模块钩子之前执行。