當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。