Pytorch_01

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.

猜你喜欢

转载自www.cnblogs.com/Manuel/p/10773190.html