本文介绍了torch.stack()和torch.cat()函数之间有什么区别?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
OpenAI的强化学习的REINFORCE和行为者批评示例具有以下代码:
policy_loss = torch.cat(policy_loss).sum()
演员批评:
loss = torch.stack(policy_losses).sum() + torch.stack(value_losses).sum()
一个正在使用torch.cat
,另一个正在使用torch.stack
.
据我了解,文档并没有明确区分他们之间.
我很高兴知道这些功能之间的区别.
解决方案
stack
cat
因此,如果A
和B
的形状为(3,4),则torch.cat([A, B], dim=0)
的形状将为(6,4),而torch.stack([A, B], dim=0)
的形状将为(2,3,4). /p>
OpenAI's REINFORCE and actor-critic example for reinforcement learning has the following code:
policy_loss = torch.cat(policy_loss).sum()
loss = torch.stack(policy_losses).sum() + torch.stack(value_losses).sum()
One is using torch.cat
, the other uses torch.stack
.
As far as my understanding goes, the doc doesn't give any clear distinction between them.
I would be happy to know the differences between the functions.
解决方案
stack
cat
So if A
and B
are of shape (3, 4), torch.cat([A, B], dim=0)
will be of shape (6, 4) and torch.stack([A, B], dim=0)
will be of shape (2, 3, 4).
这篇关于torch.stack()和torch.cat()函数之间有什么区别?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!