Pytorch torch.Tensor.add\ux发生了什么?

Pytorch torch.Tensor.add\ux发生了什么?,pytorch,Pytorch,我正在研究PyTorch的SGD实施: 我看到一些奇怪的计算,我不明白 例如,看看p.data.add.(-group['lr'],d_p)。认为两个参数相乘是有道理的,对吗?(这是SGD的工作原理,-lr*梯度) 但是函数的第二部分并没有说明这一点 更让人困惑的是,尽管这段SGD代码实际上是有效的(我通过复制代码并调用add下面的打印进行了测试),但我不能简单地使用带有两个参数的add: #this returns an error about using too many arguments

我正在研究PyTorch的SGD实施:

我看到一些奇怪的计算,我不明白

例如,看看
p.data.add.(-group['lr'],d_p)
。认为两个参数相乘是有道理的,对吗?(这是SGD的工作原理,
-lr*梯度

但是函数的第二部分并没有说明这一点

更让人困惑的是,尽管这段SGD代码实际上是有效的(我通过复制代码并调用
add
下面的打印进行了测试),但我不能简单地使用带有两个参数的
add

#this returns an error about using too many arguments 
import torch

a = torch.tensor([1,2,3])
b = torch.tensor([6,10,15])
c = torch.tensor([100,100,100])
a.add_(b, c)
print(a)

这是怎么回事?我缺少什么?

这适用于标量:

a = t.tensor(1)
b = t.tensor(2)
c = t.tensor(3)
a.add_(b, c)
print(a)
张量(7)

a
可以是张量:

a = t.tensor([[1,1],[1,1]])
b = t.tensor(2)
c = t.tensor(3)
a.add_(b, c)
print(a)
张量([[7,7], [7,7]]

输出为7,因为:
(张量其他,数字alpha)