Как я могу поменять 3 измерения друг с другом в Pytorch? - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть a= torch.randn(28, 28, 8), и я хочу поменять местами измерения тензора и переместить третье измерение на первое место, первое на второе и второе на третье. Я использовал b = a.transpose(2, 0, 1), но получил эту ошибку:

TypeError: transpose() received an invalid combination of arguments - got (int, int, int), but expected one of:
 * (name dim0, name dim1)
 * (int dim0, int dim1)

Должен ли я использовать транспонирование несколько раз, каждый раз только для смены двух измерений? Можно ли как-то поменять все сразу?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 08 апреля 2020

Вы можете использовать функцию Pytorch permute(), чтобы поменять все сразу,

>>>a = torch.randn(28, 28, 8)
>>>b = a.permute(2, 0, 1)
>>>b.shape
torch.Size([8, 28, 28])
0 голосов
/ 08 апреля 2020

Использование permute:

b = a.permute(2, 0, 1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...