Tensor
Tensor是PyTorch中的重要数据结构,可认为是一个高维数组,Tensor与numpy的ndarrays类似,但Tensor可以使用GPU加速
import torch as t#import A as B,给予A库一个B的别称,帮助记忆 #构建5*3矩阵,只是分配了空间,未初始化 x=t.Tensor(5,3) print(x) print(x.size())#查看x的形状 print(x.size()[0],x.size(1))#查看列的个数,两种写法等价 print(t.Size([4,5])) #使用[0,1]均匀分布随机初始化二维数组 y=t.rand(5,3) print(y) #加法的三种写法 print(x+y) print(t.add(x,y)) #指定加法结果的输出目标未result result=t.Tensor(5,3)#预先分配空间 t.add(x,y,out=result)#输入到result print(result)
函数名后面带下划线_的函数会修改Tensor本身。例如,x.add_(y)和x.t_()会改变x,但x.add(y)和x.t()会返回一个新的Tensor,且x不变
Tenor与numpt极为相似,Tensor和numpy的数组见的互操作非常容易且快速,Tensor不支持的操作可先转为numpy数组处理,之后再转回Tensor。
a=t.ones(5) print(a) b=a.numpy() print(b) c=np.ones(5) d=t.from_numpy(c)#Numpy->Tensor print(c) print(d)
#Tensor和Numpy共享内存,其中一个改变另一个也会随之改变
d.add_(1) print(c) print(d)
Tensor可通过.cuda方法转为GPU的Tensor,从而享受GPU的加速
x=t.rand(3,5) y=t.ones(3,5) print(t.cuda.is_available()) if t.cuda.is_available(): x=x.cuda() y=y.cuda() z=x+y print(z)
Autograd:自动微分
我
1.