【问题标题】:Strange behaviour in PyTorchPyTorch 中的奇怪行为
【发布时间】:2018-06-01 03:14:24
【问题描述】:

我最近开始学习 pyTorch。我因为喜欢 Python 而离开了 Torch 社区。​​p>

我在 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,这意味着它显然是在添加张量(我还检查了其他数字),然后用添加后的值构造一个 10 x 10 的张量。

谁能解释一下为什么会这样。我在 Torch(Lua) 中进行了尝试,它进行了累积加法并返回了我期望的张量。

【问题讨论】:

标签: python lua torch pytorch


【解决方案1】:

当您在火炬张量之间执行sum 时,广播 正在后台进行。当您使用 NumPy 进行添加时,您也会看到相同的行为。而且,PyTorch 仅遵循 NumPy 中遵循的相同广播规则。

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-06
      • 2012-09-01
      相关资源
      最近更新 更多