暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Python十二钗之PyTorch:什么是PyTorch?

健谈始于戊戌年 2021-07-01
2385

阅读本文之前需要对Numpy和TensorFlow有一些了解。

 

PyTorch是由Facebook(脸书公司)人工智能团队开发的一款产品。它是根据Torch开发的开源机器学习库。PyTorch的前端除了可以是python以外,也可以是C++。现在不仅Facebook在使用PyTorch,别的公司也在使用。例如,Uber的Pyro概率程序软件在后端就用到了PyTorch。


顺便说一句,FaceBook的股价在过去几年里上涨了将近10倍。


Facebook股价


PyTorch是一个基于Python语言的科技计算包。它的主要功能包括:

 

  1. 利用GPUs的功能替换Python中Numpy。(GPU是Graphics Processing Unit的缩写。它的意思是图形处理器。它是一种专门在个人电脑、平板电脑、智能手机等设备上进行图像和图形相关运算工作的微处理器。)


  2. 提供最灵活和最快计算速度的深度学习模型。

 

PyTorch和谷歌公司开发的TensorFlow有些类似。为了介绍PyTorch,我们还是从张量(Tensors)开始讲起。

 

PyTorch的Tensors同Numpy中ndarray类似,但是Tensors还可以在GPU上使用,提高计算速度。

 

首先,我们还是要先调用torch。这个类似于Numpy中我们先要调用Numpy。

from __future__ import print_function

import torch

 

然后,我们就可以新建矩阵。例如,我们可以建一个5行3列的空矩阵(uninitialized matrix)。这个矩阵里面开始什么都没有,以后给它赋什么值,它就会有什么值。

x = torch.empty(5, 3)

print(x)

tensor([[2.8418e-42, 0.0000e+00, 5.7593e-43],

        [1.0194e-38, 2.8418e-42, 0.0000e+00],

        [5.6052e-45, 1.0653e-38, 4.1327e-39],

        [8.9082e-39, 9.8265e-39, 9.4592e-39],

        [1.0561e-38, 1.0286e-38, 1.0469e-38]])

 

还可以新建一个数值随机的矩阵

x = torch.rand(5, 3)

print(x)

tensor([[0.8899, 0.3927, 0.1387],

        [0.5546, 0.0182, 0.8097],

        [0.7187, 0.0279, 0.3768],

        [0.9782, 0.8246, 0.6570],

        [0.3012, 0.5486, 0.9711]])

 

在Numpy中,我们可以用zeros()创建零矩阵。在Tensors中也可以创建零矩阵

x = torch.zeros(5, 3, dtype=torch.long)

print(x)

tensor([[0, 0, 0],

        [0, 0, 0],

        [0, 0, 0],

        [0, 0, 0],

        [0, 0, 0]])

 

你还可以用数据直接构建矩阵

x = torch.tensor([5.5, 3])

print(x)

tensor([5.5000, 3.0000])

 

除此之外,你还可以在已有的矩阵上,新建矩阵。例如,你可以先新建一个全部元素为1的矩阵,这同Numpy中的ones()类似。它有5行3列,数据类型为double。

x = x.new_ones(5, 3, dtype=torch.double)

print(x)

tensor([[1., 1., 1.],

        [1., 1., 1.],

        [1., 1., 1.],

        [1., 1., 1.],

        [1., 1., 1.]], dtype=torch.float64)

 

然后我们在矩阵x的基础上,改变它的数据类型

x = torch.randn_like(x, dtype=torch.float)

print(x)  

tensor([[-0.1714, -0.8991,  1.1465],

        [ 2.2389, -0.2409, -1.0734],

        [-1.4309,  0.5260, -0.7654],

        [ 0.0656,  1.1064,  0.7384],

        [ 1.3496,  1.8005, -0.6253]])

 

而矩阵x的结构没有改变。

print(x.size())


PyTorch的功能远远不止矩阵运算这么简单,它还可以和神经网络结合进行深度学习,处理各种图片。这个我们以后再介绍。




Python中的大熊猫(Pandas)!


Python中的大熊猫(Pandas)之二


Python中Numpy的基础知识(1)


Python十二钗之Numpy(2)


Python十二钗之Scikit-learn :特朗普的就职演说有何不同?


Python十二钗之SciPy:早知有SciPy,何必用美拍?


Python十二钗之Matplotlib:画图原来如此简单!


Python十二钗之NLTK:文本分析神器


Python十二钗之NLTK:文本的情感分析


Python十二钗之NLTK:文本模型的设计和评估!

文章转载自健谈始于戊戌年,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论