pytorch 钩子函数未执行
pytorch hook function is not executed
我可以知道为什么 pytorch hook function 不起作用吗?
您可能想要使用 torch.nn.Module.named_modules
instead of torch.nn.Module.named_children
。后者只会 return 直接子模块。在您的情况下,graph
的直接子级是 cells
,因此您不会在 cells
、 即 定义的层内循环模块在 ModuleList
.
里面
或者使用 named_modules
:
for name, module in graph.named_modules()
pass
或直接在graph.cells
上使用named_children
:
for name, module in graph.cells.named_children():
pass
但是,如果您决定向 Graph
添加额外的子模块,则后一种选择将无法扩展。
我可以知道为什么 pytorch hook function 不起作用吗?
您可能想要使用 torch.nn.Module.named_modules
instead of torch.nn.Module.named_children
。后者只会 return 直接子模块。在您的情况下,graph
的直接子级是 cells
,因此您不会在 cells
、 即 定义的层内循环模块在 ModuleList
.
或者使用 named_modules
:
for name, module in graph.named_modules()
pass
或直接在graph.cells
上使用named_children
:
for name, module in graph.cells.named_children():
pass
但是,如果您决定向 Graph
添加额外的子模块,则后一种选择将无法扩展。