当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python PyTorch register_module_full_backward_hook用法及代码示例


本文简要介绍python语言中 torch.nn.modules.module.register_module_full_backward_hook 的用法。

用法:

torch.nn.modules.module.register_module_full_backward_hook(hook)

返回

一个句柄,可用于通过调用 handle.remove() 删除添加的钩子

返回类型

torch.utils.hooks.RemovableHandle

注册一个所有模块共有的后向钩子。

警告

这会将全局状态添加到 nn.module 模块,并且仅用于调试/分析目的。

每次计算与模块输入相关的梯度时,都会调用该钩子。挂钩应具有以下签名:

hook(module, grad_input, grad_output) -> Tensor or None

grad_inputgrad_output 是元组。钩子不应该修改它的参数,但它可以选择返回一个关于输入的新梯度,该梯度将在后续计算中用于代替grad_inputgrad_input 将仅对应于作为位置参数给出的输入,并且所有 kwarg 参数都不会出现在钩子中。对于所有非张量参数,grad_inputgrad_output 中的条目将为 None

由于技术原因,当这个钩子被应用到一个 Module 时,它的 forward 函数将接收传递给 Module 的每个 Tensor 的视图。同样,调用者将收到模块 forward 函数返回的每个张量的视图。

在使用 register_backward_hook 注册的钩子之前调用全局钩子

相关用法


注:本文由纯净天空筛选整理自pytorch.org大神的英文原创作品 torch.nn.modules.module.register_module_full_backward_hook。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。