torch.sub()与torch.sub_()函数用法

torch.sub()用法:

官网介绍截图如下,后面为对官网介绍的解读。

 解读如下:

函数形式:torch.sub(input, other, *, alpha=1, out=None)

参数解读:

  • input: 输入的被减数,格式为tensor格式
  • other:输入的减数
  • alpha:与上面other参数搭配使用,用来与other相乘,当使用torch.sub()函数时不指定alpha的值时,alpha默认为1
  • out: 指定torch.sub()输出值被赋给的变量,可不指定。

函数输出计算公式:

例如:

>>> a = torch.tensor((1, 2))
>>> b = torch.tensor((0, 1))
>>> c = torch.sub(a, b, alpha=2)
>>> print(c)
tensor([1, 0]) 
'''
结合计算公式可知:c1 = a1 - alpha*b1 = 1 - 2*0 = 1 ;c2 = a2 - alpha*b2 = 2 - 2*1 = 0
'''

torch.sub_()功能与torch.sub()相同,区别在与torch.sub_()是torch.sub()的in-place操作版本。

in-place 操作是直接改变给定线性代数、向量、矩阵(张量)的内容而不需要复制的运算,代码效果如下:

>>> a = torch.tensor((1, 2))
>>> b = torch.tensor((0, 1))
>>> a.sub_(b, alpha=2)
>>> print(a)
tensor([1, 0]) 
'''
可见对a直接用调用方法的形式使用torch.sub_()可以直接将a原先的值修改为torch.sub(a,b,alpha=2)的运算结果
'''

值得一提的是Torch里面所有名称中带“_”的操作,都是in-place的。

猜你喜欢

转载自blog.csdn.net/qq_40641713/article/details/124159852