火炬nn:如何获得输出的尺寸(特征图)?

时间:2016-02-27 22:17:07

标签: lua neural-network deep-learning torch conv-neural-network

在卷积模块中,许多参数可能会改变输入的维数。有没有办法获得卷积模块输出的维数,或者通常是任何模块的输出维数?

我尝试查看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)之外,我甚至没有设置输入维度。怎么设置呢?为什么不强制要求?

1 个答案:

答案 0 :(得分:5)

输出大小取决于您的输入大小。你可以尝试这样的事情:

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]