torch nn : 如何获取输出的维度(特征映射)?

在卷积模块中,许多参数可以改变输入的维度。有没有办法获取卷积模块的输出维度,或者在一般情况下获取任意模块的输出维度?

我尝试查看SpatialConvolution中公开的方法,但没有任何方法给我这些信息。

此外,输出张量似乎具有以下维度:

conv1 = nn.SpatialConvolution(3, 96, 5, 5, 1, 1, 2, 2)
conv1.id   = 'conv1'
print(conv1.output:size())
[torch.LongStorage of size 0]

有任何想法吗?

我意识到我甚至没有设置输入维度,除了通道数(即3x32x32)。 如何设置? 为什么不是强制性的?

点赞
用户2669077
用户2669077

输出大小取决于输入大小。你可以尝试这样做:

th> require 'nngraph'
th> conv1 = nn.SpatialConvolution(3, 96, 5, 5, 1, 1, 2, 2)()
th> model = nn.gModule({conv1},{conv1})
th> x = torch.rand(3,20,20)
th> y = model:forward(x)
th> y:size()

96
20
20
[torch.LongStorage of size 3]
2016-02-28 21:51:42