5

在张量流中,我可以在深度维度上进行池化,这将减少通道并保持空间维度不变。我试图在 pytorch 中做同样的事情,但文档似乎说池只能在高度和宽度尺寸上完成。有没有办法可以在 pytorch 中汇集频道?我有一个形状张量,[1,512,50,50]我正在尝试使用池化将通道数减少到 3。我看到了这个问题,但没有找到有用的答案。

4

1 回答 1

3

减少通道数量的最简单方法是使用 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])

如果由于某种原因确实需要沿通道维度执行池化,则可能需要置换维度,以便将通道维度与其他维度(例如宽度)交换。这里引用了这个想法。

于 2019-03-26T12:57:00.923 回答