2016-02-27 67 views
2

在卷積模塊中,許多參數可能會改變輸入的維數。有什麼辦法可以獲得卷積模塊輸出的維度,還是一般的任何模塊?火炬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)。如何設置它?爲什麼它不是強制性的?

+2

有沒有這樣的方法存在。你將不得不調用函數來調整輸出大小,然後獲取形狀。 – smhx

回答

4

輸出尺寸取決於您的輸入尺寸。你可以嘗試這樣的事情:

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]