python - 如何在钩子函数中检索图层的名称?
问题描述
我有一个神经网络
class ConvNet(nn.Module):
def __init__(self):
super().__init__()
self.trunk = nn.ModuleList()
self.trunk.add_module('conv1', nn.Conv2d(3, 10, 3))
self.classifier = nn.Linear(30, 2)
def forward(self, x):
out = self.classifier(self.trunk.conv1(x))
return out
model = ConvNet()
我注册了前向钩子
def hook(module, input, output):
print(module, input[0].shape, output.shape)
x = model.trunk.conv1.register_forward_hook(hook)
如何在钩子函数中检索“conv1”层的名称,module._get_name
returns Conv2d
,module.__class__
returns <class 'torch.nn.modules.conv.Conv2d'>
,如何获得“conv1”?
解决方案
推荐阅读
- sql-server - 如何将属性添加到 SQL Server 列中的 JSON 对象
- c# - 将标签的文本绑定到列表 XAML 中的索引
- r - 用于提取特定列的示例 R 代码
- unity3d - Unity Shader Graph 中的示例渐变范围
- java - 从 Quartz 作业调用 EJB
- django - django:断言错误`create()`没有返回对象实例
- javascript - 在 NodeJS 中使用 Request 或 Needle 的套接字挂断错误
- reactjs - StackNavigator中的React-native TabNavigator,不能在屏幕之间移动
- html - Hostgator 显示我所有的 html 文件而不是索引
- excel - 如何从 Web VBA 导入过时的 xls 文件