pytorch类似于numpy的使用,同时可以使用GPU提升计算速度,还可以搭建深度学习模型,方便实用,简单易学,下面介绍一下pytorch的基本语法:
1.创建矩阵的方法
(1)构建未初始化的矩阵
import torch
x = torch.empty(5,3)
(2)构建随机初始化矩阵
x = torch.rand(5,3)
(3)构建全部为0,类型为long的矩阵
x = torch.zeros(5,3,dtype=torch.long)
或者
x= torch.zeros(5,3).long()
(4)从数据直接直接构建tensor
x = torch.tensor([5.5,3])
(5)从一个已有的tensor构建一个tensor,new_ones重用以前的信息,例如数据类型;randn_like产生一个形状一样的矩阵。
x = x.new_ones(5,3, dtype=torch.double)
y = torch.randn_like(x, dtype=torch.float)
2.显示数据类型,得到tensor的形状和改变形状
(1)显示数据类型
x = torch.zeros(5,3).long()
x.dtype
(2)得到tensor的形状
x.shape
或者
x.size()
(3)改变tensor形状
x = torch.randn(4,4)
y = x.view(16)
z = x.view(-1,8)
3.tensor运算
(1)加法
x = torch.rand(5,3)
y = torch.rand(5,3)
x + y
torch.add(x, y)
result = torch.empty(5,3)
torch.add(x, y, out=result)
# result = x + y
y.add_(x)
4.得到Python数值
x = torch.randn(1)
x.item()
5.Numpy,Tensor的CPU和GPU之间的转化
(1)把Torch Tensor转变成NumPy Array
a = torch.ones(5)
b = a.numpy()
(2)把NumPy ndarray转成Torch Tensor
a = np.ones(5)
b = torch.from_numpy(a)
np.add(a, 1, out=a)
(3)CPU转成GPU
if torch.cuda.is_available():
device = torch.device("cuda")
y = torch.ones_like(x, device=device)
x = x.to(device)
z = x + y
print(z)
print(z.to("cpu", torch.double))
model = model.cuda()
(4)GPU不能直接转化成numpy,必须先转化为CPU,再转化为numpy
y.to("cpu").data.numpy()
y.cpu().data.numpy()
网友评论