在pytorch中可视化cnn中间层的输出

Visualizing the output of intermediate layers of cnn in pytorch

我正在尝试从 torchvision 模块可视化 VGG19 网络中间层的输出,特别是 conv4_2 层。 我已经提取了形状为 [1, 512, 50, 50] 的张量的输出。 但是如何可视化具有 512 个通道的图像?

特征可视化是一门非常复杂的学科。
如果你想直观地了解受训网络的每个过滤器(512 个)正在响应什么,你可以使用 these 之类的方法:从 conv4_2 的输出到输入图像传播梯度,并更改图像以最大化特征响应。您将不得不通过正则化等工作来获得流畅的视觉效果。

或者,您可以看到每个过滤器(在 512 个中)对每个位置(重叠感受野)的具体响应。在这种情况下,您有 512 张不同的 50×50 强度图像,每张图像都显示每个神经元对输入图像的响应图。