В чем разница между функциями torch.stack () и torch.cat ()? - PullRequest
0 голосов
/ 22 января 2019

Пример OpenAI REINFORCE и актер-критик для обучения подкреплению имеет следующий код:

REINFORCE :

policy_loss = torch.cat(policy_loss).sum()

актер-критик :

loss = torch.stack(policy_losses).sum() + torch.stack(value_losses).sum()

Один использует torch.cat, другой использует torch.stack.

Насколько я понимаю, документ не дает никакогоЧеткое различие между ними.

Я был бы рад узнать о различиях между функциями.

1 Ответ

0 голосов
/ 22 января 2019

stack

Объединяет последовательность тензоров вдоль нового измерения .

cat

Объединяет данную последовательность последовательных тензоров в заданном измерении .

Так что если A и B имеют форму (3, 4), torch.cat([A, B], dim=0) будетиметь форму (6, 4) и torch.stack([A, B], dim=0) будет иметь форму (2, 3, 4).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...