評價此頁

torch.nn.modules.module.register_module_forward_hook#

torch.nn.modules.module.register_module_forward_hook(hook, *, with_kwargs=False, always_call=False)[原始碼]#

為所有模組註冊一個全域性前向鉤子。

警告

此函式會向 nn.module 模組新增全域性狀態,僅用於除錯/剖析目的。

每次呼叫 forward() 計算出輸出後,都會呼叫此鉤子。它的簽名應如下所示:

hook(module, input, output) -> None or modified output

輸入僅包含傳遞給模組的位置引數。關鍵字引數不會傳遞給鉤子,只會傳遞給 forward。您可以透過返回一個新值來選擇性地修改模組的輸出,該值將替換 forward() 函式的輸出。

引數
  • hook (Callable) – 使用者定義的待註冊鉤子。

  • always_call (bool) – 如果為 True,則無論呼叫 Module 時是否發生異常,都將執行 hook。預設為 False

返回

一個控制代碼,可用於透過呼叫 handle.remove() 來移除新增的鉤子

返回型別

torch.utils.hooks.RemovableHandle

此鉤子將在已使用 register_forward_hook 註冊的特定模組鉤子之前執行。