PyTorch中的奇怪行为

问题描述 投票:1回答:2

我最近开始学习pyTorch。因为我喜欢Python,所以我从Torch社区迁移。

我在pyTorch中遇到了这种奇怪的行为。任何见解为什么会发生这种情况会受到赞赏。

x=torch.Tensor(10,1).fill_(1)
y=torch.Tensor(10).fill_(2)
print(x.size())     #output is torch.Size([10, 1])
print(y.size())     #output is  torch.Size([10])
z=x+y
z.size()
z.size()            #output is torch.Size([10, 10])

z的输出为10 x 10,值为3,这意味着它显然添加了Tensors(我还检查了其他数字),然后使用添加后的值构建10 x 10 Tensor。

有人可以解释我为什么会这样。我在Torch(Lua)尝试过它累积添加并返回我预期的Tensor。

python lua torch pytorch
2个回答
0
投票

当你在火炬传感器之间进行sum时,广播正在后台进行。当您使用NumPy进行添加时,您也会看到相同的行为。并且,PyTorch只遵循NumPy中遵循的相同广播规则。

你可以在这里阅读和理解广播:NumPy Broadcasting


0
投票

这是因为在任何pytorch代码中自动发生的广播。

© www.soinside.com 2019 - 2024. All rights reserved.