torch.stack()和torch.cat()函数之间有什么区别?
machine-learning
python
pytorch
10
0

OpenAI的强化学习的REINFORCE和actor-critic示例具有以下代码:

加强

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

演员评论家

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

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

据我所知, 文档没有对它们之间进行任何明确的区分。

我很高兴知道这些功能之间的区别。

参考资料:
Stack Overflow
收藏
评论
共 1 个回答
高赞 时间 活跃

stack

沿着新的维度连接张量序列。

cat

在给定维度上连接给定序列张量的序列。

因此,如果AB的形状为(3,4), torch.cat([A, B], dim=0)的形状torch.stack([A, B], dim=0) )和torch.stack([A, B], dim=0)的形状为(2,3,4)。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号