用pytorch编写机器学习算法

pytorch基本语法

2020-09-23  本文已影响0人  风中逍锋

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()

上一篇下一篇

猜你喜欢

热点阅读