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註冊的特定模組鉤子之前執行。