torch.stack()函数和torch.cat()函数有什么区别?

2024-04-29 08:23:34 发布

您现在位置:Python中文网/ 问答频道 /正文

OpenAI的reinforcement和actor critic示例用于reinforcement学习,代码如下:

REINFORCE

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

actor-critic

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

一个使用torch.cat,另一个使用torch.stack

就我的理解而言,the doc并没有明确区分它们。

我很乐意知道这些功能之间的区别。


Tags: 代码示例valuestackpolicytorchcatactor
1条回答
网友
1楼 · 发布于 2024-04-29 08:23:34

stack

Concatenates sequence of tensors along a new dimension.

cat

Concatenates the given sequence of seq tensors in the given dimension.

因此,如果AB是形状(3,4),那么torch.cat([A, B], dim=0)将是形状(6,4)和torch.stack([A, B], dim=0)将是形状(2,3,4)。

相关问题 更多 >