在 pytorch 中池化通道
Pooling over channels in pytorch
在 tensorflow 中,我可以合并深度维度,这会减少通道并保持空间维度不变。我正在尝试在 pytorch 中做同样的事情,但 documentation 似乎说池只能在高度和宽度尺寸上完成。有没有办法可以在 pytorch 中汇集频道?
我有一个形状为 [1,512,50,50]
的张量,我正在尝试使用池将通道数减少到 3。
我看到 this question 但没有找到有用的答案。
减少通道数量的最简单方法是使用 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.
在 tensorflow 中,我可以合并深度维度,这会减少通道并保持空间维度不变。我正在尝试在 pytorch 中做同样的事情,但 documentation 似乎说池只能在高度和宽度尺寸上完成。有没有办法可以在 pytorch 中汇集频道?
我有一个形状为 [1,512,50,50]
的张量,我正在尝试使用池将通道数减少到 3。
我看到 this question 但没有找到有用的答案。
减少通道数量的最简单方法是使用 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.