从 Torch 张量可视化 CNN 权重

Visualizing CNN weights from Torch Tensor

我有一个大小为 64x64x3x3 的 Torch Cuda Tensor,我想将给定层的权重可视化如下:

local layer = model:get(3)
local weights = layer.weight
local imgDisplay = image.toDisplayTensor{input=weights, padding=2, scaleeach=80}

这会产生错误:

'packed must be a HxW or KxHxW or Kx3xHxW tensor, or a list of tensors

我应该如何调整张量大小才能使用 toDisplayTensor?谢谢

错误似乎非常简单 - 您应该以以下任一形式提供数据:

  • HxW - 身高 x 体重,2 维张量,每 kernel/channel 对一个
  • KxHxW - 内核 x 高度 x 重量,3 维张量,每个通道一个(例如,如果数据是灰度)
  • Kx3xHxW - 内核 x 通道 x 高度 x 权重,4 维张量,每个网络层一个(对于 3 通道颜色数据,因为第二个维将映射到 RGB 比例)

在你的情况下,我假设你的图像是 64x64(或当前卷积之后)?然后你需要 3x3x64x64 张量,其中第一个维度是在内核上迭代的维度,第二个是颜色上的迭代,第三个是图像本身上的迭代。