torch的运算

###加法
X = torch.ones(2,2)
Y = torch.tensor([1,3]) #触发广播机制,第一行复制到第二行后在与X相加
#Y = torch.tensor([[1,3]])#触发广播机制,第一行复制到第二行后在与X相加
#Y = torch.tensor([[1],[3]])#触发广播机制,第一列复制到第二列后在与X相加
print(X + Y)
print(X.add(Y))
print(torch.add(X,Y))
#输出
'''
tensor([[2., 4.],
        [2., 4.]])
tensor([[2., 4.],
        [2., 4.]])
tensor([[2., 4.],
        [2., 4.]])
'''
###减法 同样触发广播机制
print(X - Y)
print(X.sub(Y))
print(torch.sub(X,Y))
#输出
'''
tensor([[ 0., -2.],
        [ 0., -2.]])
tensor([[ 0., -2.],
        [ 0., -2.]])
tensor([[ 0., -2.],
        [ 0., -2.]])
'''
#无论加法还是减法无论是直接用"+"还是add,都不需要X,Y类型一致。

###矩阵(张量)点乘
#有广播机制
#无需X,Y类型一致
print(X*Y)
print(X.mul(Y))
print(torch.mul(X,Y))
#输出
'''
tensor([[1., 3.],
        [1., 3.]])
tensor([[1., 3.],
        [1., 3.]])
tensor([[1., 3.],
        [1., 3.]])
'''
###矩阵(张量)相乘
#无广播机制
#需X,Y类型一致
print(X.mm(Y)) 
print(torch.mm(X,Y))

你可能感兴趣的:(Pytorch)