Объединение по каналам в pytorch - PullRequest
2 голосов
/ 26 марта 2019

В тензорном потоке я могу объединить размер глубины, который уменьшит каналы и оставит пространственные размеры неизменными.Я пытаюсь сделать то же самое в pytorch, но документация , кажется, говорит, что объединение может быть сделано только по размерам высоты и ширины.Есть ли способ, которым я могу объединиться по каналам в pytorch?У меня есть тензор формы [1,512,50,50] Я пытаюсь использовать пул, чтобы уменьшить количество каналов до 3. Я видел этот вопрос , но не нашел ответ полезным.

1 Ответ

0 голосов
/ 26 марта 2019

Самый простой способ уменьшить количество каналов - использовать ядро ​​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])

Если вам действительно по какой-то причине необходимо выполнить объединение в пул по измерению каналов, возможно, вы захотите переставить измерениятак что размер каналов поменяется местами с другим измерением (например, шириной).На эту идею ссылались здесь .

...