我有一个大小为64x64x3x3的Torch Cuda张量,我想以如下方式可视化其在特定层中的权重:
local layer = model:get(3)local weights = layer.weightlocal 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维张量,每个核/通道对一个
- KxHxW – 核 x 高度 x 宽度,3维张量,每个通道一个(例如,如果数据是灰度的)
- Kx3xHxW – 核 x 通道 x 高度 x 宽度,4维张量,每个网络层一个(对于3通道彩色数据,因为第二维将被映射到RGB比例)
在您的情况下,我假设您的图像是64×64(或在当前卷积之后是)?那么您需要一个3x3x64x64的张量,其中第一维是迭代核的维度,第二维是迭代颜色的维度,第三和第四维是图像本身的维度。