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