pytorch入门1.2(稍微高级点的操作)

承接上一节,继续来学一下更加高级那么一点点的操作。

5.张量的几个基本操作

a = torch.rand(2,3,4)   # 随机生成一个张量

a.view(-1,2)  # 把张量变成含有两列的张量,行数程序自己算
a.reshape(-1,2)  # 把张量变成含有两列的张量,行数程序自己算

a.numpy()  # 转换成numpy的数组

torch.from_numpy(a.numpy())  # 从numpy转为tensor

6. 张量的索引

a[:,:,:]  # 三个维度全取

a[1:,:,:3]  # 在第一个维度从第一个元素开始取;在第二个维度全取;在第三个维度取到第2个元素(不包含冒号后的end位置)
a[1:2,:,:]

7. 张量的广播

广播(broadcasting)指的是不同形状的张量之间的算数运算的执行方式。

a = torch.randint(0,9,size=(3,3))
a*4
a = torch.randint(0,9,size=(1,4))
b = torch.randint(0,9,size=(4,1))
a-b

上面这个例子a本身为(1 imes4)的张量,而b是(4 imes1)的张量。那么a想要和b进行运算,就必须按照b的行来补,b就得按照a的列数量来补充。

原文地址:https://www.cnblogs.com/datasnail/p/13082293.html