unsqueeze(arg)代表在arg位置新增一维度。这一函数的主要目的是当我们在使用深度学习进行运算时,我们需要的都是行列式,如果传入参数为一数组(0维Tensor),无法进行运算。
squeeze(arg)代表去掉arg这一维度。
# torch.mul(a,b) will return the element-wise multiplication
c = torch.mul(a,b)
# for example,
a = torch.tensor([[0., 1., 2.],
[0., 1., 2.],
[0., 1., 2.]])
b = torch.tensor([[0., 0., 0.],
[1., 1., 1.],
[2., 2., 2.]])
c = a.mul(b)
print(c)
tensor([[0., 0., 0.],
[0., 1., 2.],
[0., 2., 4.]])
# torch.mm(a,b) will return the matrix-multiplication
d = a.mm(b)
print(d)
tensor([[5., 5., 5.],
[5., 5., 5.],
[5., 5., 5.]])
a.addmm_(alpha, beta, b, c)
# a.addmm_(alpha, beta, b, c) will return:
# a = alpha * a + beta * (b @ c)
#which equals to:
# a = a.addmm(alpha, beta, b, c)
# for example:
a = torch.ones([3,3])
b = torch.tensor([[0., 1., 2.],
[0., 1., 2.],
[0., 1., 2.]])
c = torch.tensor([[0., 0., 0.],
[1., 1., 1.],
[2., 2., 2.]])
a.addmm_(1,-2, b, c)
# tensor([[ 1., 1., 1.],
# [ 1., -5., -11.],
# [ 1., -11., -23.]])
# note:
b.mm(c)
# tensor([[ 0., 0., 0.],
# [ 0., 3., 6.],
# [ 0., 6., 12.]])