DL框架之PyTorch:深度学习框架PyTorch的简介、安装、使用方法之详细攻略

DL框架之PyTorch:PyTorch的简介、安装、使用方法之详细攻略

DL框架之PyTorch:深度学习框架PyTorch的简介、安装、使用方法之详细攻略


相关文章
DL框架之PyTorch:PyTorch的简介、安装、使用方法之详细攻略
Py之torchvision:torchvision库的简介、安装、使用方法之详细攻略

PyTorch的简介

pytorch是一个python优先的深度学习框架,是一个和tensorflow,Caffe,MXnet一样,非常底层的框架。     
       在 AI 开发中,从研究到产品的过程通常涉及很多的步骤和工具,使得测试新方法、部署以及迭代提高准确率和性能很耗时、复杂。为了帮助加速和优化这个过程,Facebook 发布了 PyTorch 1.0,其开源 AI 框架的最新版本。
       PyTorch 1.0 发布在即,全新的版本融合了 Caffe2 和 ONNX 支持模块化、面向生产的功能,并保留了 PyTorch 现有的灵活、以研究为中心的设计。PyTorch 1.0 从 Caffe2 和 ONNX 移植了模块化和产品导向的功能,并将它们和 PyTorch 已有的灵活、专注研究的设计结合,已提供多种 AI 项目的从研究原型制作到产品部署的快速、无缝路径。利用 PyTorch 1.0,AI 开发者可以通过混合前端快速地实验和优化性能,该前端可以在命令式执行和声明式执行之间无缝地转换。PyTorch 1.0 中的技术已经让很多 Facebook 的产品和服务变得更强大,包括每天执行 60 亿次文本翻译。
       PyTorch是一个基于Torch的Python开源机器学习库,用于自然语言处理等应用程序。它主要由Facebookd的人工智能小组开发,不仅能够 实现强大的GPU加速,同时还支持动态神经网络,这一点是现在很多主流框架如TensorFlow都不支持的。 PyTorch提供了两个高级功能: 1.具有强大的GPU加速的张量计算(如Numpy) 2.包含自动求导系统的深度神经网络 除了Facebook之外,Twitter、GMU和Salesforce等机构都采用了PyTorch。
       从 PyTorch 到 Caffe2 的迁移过程以前是手动的、耗时间的和容易出错的。为了解决这个问题,Facebook 与主要的硬件和软件公司合作创建了 ONNX(开放神经网络交换格式),这是一种用于表示深度学习模型的开放格式。通过 ONNX,开发者能在不同的框架间共享模型,例如我们可以导出由 PyTorch 构建的模型,并将它们导入到 Caffe2。在 Facebook 中,这令我们能在大规模服务器和移动端上快速实现 AI 的研究、训练和推断。Facebook 已经用这些工具(PyTorch、Caffe2 和 ONNX)来构建和部署 Translate,这一工具能大规模运行并支持翻译 Facebook 中最常用的 48 种语言。在 VR 中,这些工具对于将基于 Oculus 的新研究部署到生产过程中至关重要。

Torch官网:https://pytorch.org/
       Torch官网的gitHub:https://github.com/torch/torch7
       pypi torch :  https://pypi.org/project/torch/

Torch自称为神经网络界的 Numpy,因为他能将 torch 产生的 tensor 放在 GPU 中加速运算 (前提是你有合适的 GPU), 就像 Numpy 会把 array 放在 CPU 中加速运算。 所以神经网络的话, 当然是用 Torch 的 tensor 形式数据最好。 就像 Tensorflow 当中的 tensor 一样。pytorch是一个动态的建图的工具。不像Tensorflow那样,先建图,然后通过feed和run重复执行建好的图。相对来说,pytorch具有更好的灵活性。
      如图所示,Torch已经实现了很多库,比如ML、RL等。
(1)、比如查询BatchNormalization算法的实现

1、pytorch的三大优势

  • (1)、Python优先支持策略:Pytorch主推的特性之一,就是支持python(官方的提法:puts Python first)。因为直接构建自 Python C API,Pytorch从细粒度上直接支持python的访问。相比于原生Python实现,引入的新概念很少,这不仅降低了 python 用户理解的门槛,也能保证代码基本跟原生的 python 实现一致。事实上,开发者可以直接用原生 python 代码扩展 Pytorch 的 operation。
  • (2)、动态图的良好支持:Tensorflow运行必须提前建好静态计算图,然后通过feed和run重复执行建好的图。但是Pytorch却不需要这么麻烦:PyTorch的程序可以在执行时动态构建/调整计算图。相对来说,pytorch具有更好的灵活性。这得益于Pytorch直接基于 python C API 构建的 python 接口。
  • (3)、易于Debug:Pytorch在运行时可以生成动态图,开发者就可以在堆栈跟踪中看到哪一行代码导致了错误。你甚至可以在调试器中停掉解释器并看看某个层会产生什么。
  • (4)、PyTorch可以使用GPU的功能代替numpy。 一个深刻的学习研究平台,提供最大的灵活性和速度。

2、PyTorch的三个结构层次

  • tensor:张量,多维数组,可在GPU上跑。
  • variable:可记住tensor在计算图中的位置,可知道当前variable和之前variable的关系。
  • module:神经网络的层次,如全连接层、卷积层。

PyTorch的安装

pip install torch
pip install torch==0.4.1.post2

T1方法
git clone https://github.com/pytorch/vision
cd vision
python setup.py install
T2方法
pip3 install http://download.pytorch.org/whl/cu80/torch-0.4.0-cp36-cp36m-win_amd64.whl
pip3 install torchvision

T3方法
pip install torch-0.4.0-cp36-cp36m-win_amd64.whl
pip install torchvision

1、20181114更新版本到 torch-0.4.1

pip3 install http://download.pytorch.org/whl/cu80/torch-0.4.1-cp36-cp36m-win_amd64.whl
pip3 install torchvision

(1)、测试

import torch
print(torch.__version__)          #输出版本信息
print(torch.cuda.is_available())  #查看是否支持cuda

2、20200108更新版本到 torch 1.3.1

官网:https://pytorch.org/

执行命令:

pip3 install torch===1.3.1 torchvision===0.4.2 -f https://download.pytorch.org/whl/torch_stable.html

或者
pip install torch-1.3.1-cp36-cp36m-win_amd64.whl

3、Anaconda内安装torch的whl文件更新版本到 torch 1.3.1

pip install D:\ProgramData\Anaconda3\envs\torch-1.3.1-cp36-cp36m-win_amd64.whl

4、Anaconda内安装torch的whl文件更新版本到 torch 1.0.0

pip install torch===1.0.0 torchvision===0.2.1 -f https://download.pytorch.org/whl/cu100/torch_stable.html

PyTorch的使用方法

相关文章
Pytorch之CNN:基于Pytorch框架实现经典卷积神经网络的算法(LeNet、AlexNet、VGG、NIN、GoogleNet、ResNet)——从代码认知CNN经典架构

0、Pytorch基础知识

1、PyTorch是一个提供两个高级功能的python包:  
具有强GPU加速度的张量计算(如numpy) 
深层神经网络建立在基于磁带的自动调整系统上 
可以重用您最喜爱的python软件包,如numpy,scipy和Cython,以便在需要时扩展PyTorch。

2、PyTorch在细粒度级别是由以下组件组成的库:
torch   像NumPy这样的Tensor图书馆,拥有强大的GPU支持 
torch.autograd   一种基于磁带的自动分类库,支持所有可区分的Tensor操作手电筒。pytorch的自动求导工具包在torch.autograd中。
torch.nn   一个神经网络库与autograd设计了最大的灵活性。pytorch神经网络构建很容易,主要使用的包是torch.nn这个包,可以尝试使用pytorch构建一个简单的二层神经网络结构。

torch.optim   一种与torch.nn一起使用的优化包,具有标准优化方法,如SGD,RMSProp,LBFGS,Adam等。 
torch.multiprocessing   python多处理,但是具有魔法内存共享的手电筒传感器跨过程。适用于数据加载和hogwild培训。
torch.utils   DataLoader,Trainer等实用功能为方便起见 torch.legacy(.nn / .optim) 由于向后兼容性原因,已经从割炬移植的旧代码

1、Pytorch三行命令即可运算

2、Pytorch加载预训练模型

import torch
import torchvision

alexnet= torchvision.models.models.alexnet(pretrained=True)
vgg16 = torchvision.models.vgg16(pretrained=True)
resnet101 = torchvision.models.resnet101(pretrained=True)
resnet152 = torchvision.models.resnet152(pretrained=True)

参考文献

PyTorch官网

PyTorch中文文档

pytorch入门

pytorch 学习笔记(一)

Win10 Python3.6下安装PyTorch

(0)

相关推荐