获取隐藏层输出

Get hidden layer outputs

我从 gluon.vision

创建了一个 densenet 网络
densenet = vision.densenet121(pretrained=True, ctx=mx.cpu())

我想获得每个卷积层的输出(预测后),然后绘制它们(特征图)。 我做不到 densenet.get_internals()(正如我在互联网和 Github 上看到的那样),因为我的网络不是 Symbol 而是 HybridBlock。

我在 mxnet 论坛找到解决方案: Gluon, get features maps of a CNN

实际上,您必须使用方法 export() 将胶子模型转换为符号以保存参数(来自 HybridBlock 的方法),并使用 mx.sym.load() 加载它们。

function get_interals()["name_of_the_layer"] 获取从开始到这一层的所有图层,因此您可以feat_maps = net(image) 获取该图层的所有特征图。

然后你可以在mxBoard中做一个SummaryWriter导出到Tensorboard。