在pytorch中汇集渠道

时间:2019-03-26 11:08:08

标签: conv-neural-network pytorch max-pooling

在张量流中,我可以合并深度尺寸,这将减少通道并保持空间尺寸不变。我试图在pytorch中执行相同的操作,但documentation似乎说只能在高度和宽度尺寸上进行合并。有没有办法可以在pytorch中汇总通道? 我有一个[1,512,50,50]形状的张量,我正在尝试使用池化将通道数减少到3。 我看到this question,但没有找到答案。

1 个答案:

答案 0 :(得分:0)

减少通道数量的最简单方法是使用1x1内核:

import torch                                                                                                                                                                                               

x = torch.rand(1, 512, 50, 50)                                                                                                                                                                                  
conv = torch.nn.Conv2d(512, 3, 1)                                                                                                                                                                             
y = conv(x)                                                                                                                                                                                                   

print(y.size())                                                                                                                                                                                                   
# torch.Size([1, 3, 50, 50])

如果由于某些原因确实需要沿通道维执行合并,则可能需要对维进行置换,以便将通道维与其他维(例如宽度)交换。 这个想法被引用为here