pytorch入门1.1(基本操作)

本节继续来讲pytorch的入门级操作,加加减减、拍平拉直的操作。

4.张量的四则运算

在操作张量的的时候,肯定少不了张量之间的加减乘除。二维世界的张量就是矩阵,是不是像我们学数学那样直接用\(+,-,*,/\)直接操作就好了呢???

x = torch.tensor([[1,2],[3,4]])
y = torch.ones(2,2)

x+y  # 对应元素相加

x-y  # 对应元素相减

x*y  # 对应元素相乘

x/y  # 对应元素相除

可以看到如果直接使用四则运算符进行操作,得到的结果都是对应元素的基本操作。

其实,对应元素的操作,还可以使用一些函数进行完成。例如add_(),add()等。

# x.add_(y)  # 此句会报错
x.dtype,y.dtype  # (torch.int64, torch.float32)

# 重新改变下数据,把x改成float32类型的
x = torch.tensor([[1,2],[3,4]],dtype=torch.float32)
y = torch.ones(2,2)

# inplace的方式,操作完成后,结果会赋值给前一个操作数
x.add_(y)  # x会变成x+y

x.t_()  # x转置,只能转置2维或者2维以下的张量

下面是 add()、mul()加法、乘法操作。可以看到都是对应元素的操作。

torch.add(x,y) # 对应元素相加
torch.mul(x,y) # 对应元素相乘

这里add_()add()的区别是,前者是变量直接调用的函数,即x可以直接点出来的函数,但是后者是torch包里才有的函数。而且前者操作完,就直接赋值给调用的变量了。

那么,我平时学的矩阵的乘法呢???它来了它来了。。。

torch.mm(x,y)  # 矩阵乘法
posted @ 2020-06-10 00:46  蒙面的普罗米修斯  阅读(463)  评论(0编辑  收藏  举报