PyTorch简介
PyTorch的前身是Torch,Torch是一个有大量机器学习算法支持的科学计算框架,灵活度很高,是一个与NumPy类似的张量(Tensor)操作库。但是Torch采用的是小众的编程语言Lua,因此流行度很低,于是就有了PyTorch的出现。PyTorch与Torch的底层语言相同,只不过是使用了更大众化的编程语言作为上层包装语言。
PyTorch是一个基于Torch的Python开源机器学习库,用于自然语言处理等应用,不仅能够实现强大的GPU加速,同时还支持动态神经网络,这一点是现在很多主流框架(如TensorFlow)都不支持的。PyTorch提供了如下两个高级功能:
- 具有强大的GPU加速的张量计算(如NumPy)
- 包含自动求导系统的深度神经网络
PyTorch的主要优势在于它的灵活性,支持动态神经网络,可以通过反向求导技术几乎零延迟地任意改变神经网络的行为,这也是刚开始PyTorch相比于TensorFlow的最大优势了(TensorFlow1.0时期是命令式的静态编程语言,首先必须构建一个神经网络,然后重复使用相同的结构,如果想要改变神经网络结构,就必须从头开始。但是TensorFlow1.5以后引入了Eager Execution机制实现了动态图)。此外,PyTorch还有支持GPU、底层代码简单易懂、命令式体验、自定义扩展等功能。
当然,PyTorch也有很多不足的地方,例如其全面性不如TensorFlow,尚不支持快速傅里叶和检查无穷与非数值张量。PyTorch针对移动端、嵌入式部署以及高性能服务端部署的性能表现不佳。
技术是发展的,我们有理由相信任何框架只要有价值就会一直被优化,所有的问题终将不是问题。
PyTorch相关安装
- 安装Anaconda
Anaconda是一个开源的Python发行版本,是一个强大的包、环境管理器,可以很方便地解决Python并存、切换以及各种第三方包安装的问题,同时支持Linux、Mac和Windows三大常用操作系统。
1、下载
可以直接从Anaconda官网(https://www.anaconda.com)下载,由于Anaconda官网服务器是国外的,因此如果网速不给力,可以选择从清华大学开源软件镜像站(https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive)下载。下载时选择适合自己的操作系统与版本点击下载即可。
2、安装
双击打开下载的安装包,一路Next至Finish即可。对于Windows用户,可能需要配置环境变量:打开控制面板->高级系统设置->环境变量->系统变量找到Path,点击编辑,加入三个文件夹的存储路径(Anaconda所在路径、Anaconda所在路径Librarybin、Anaconda所在路径Scripts)。
安装成功打开Anaconda,首页如上图所示。
- 安装PyTorch和torchvision
torchvision是独立于PyTorch的关于图像操作的一些工具库。torchvision主要包括一下几个包:
- datasets:几个常用视觉数据集,可以加载或下载,可以查看源码,也可以写自己的Dataset子类。
- models:包含主流模型,例如AlexNet、VGG、ResNet、Densenet等。
- transforms:常用的图像操作,例如随机切割、几何变换、数据类型转换、图像到tensor,NumPy数组到tensor,tensor到图像等。
- utils:用于把形似图像张量保存到硬盘中,给一个mini-batch的图像可以生成一个图像网格。
可以使用一条conda install命令同时安装PyTorch和torchvision,只需在命令行输入如下命令:
conda install pytorch torchvision -c pytorch
等待环境加载完毕,输入y开始安装。经过一段时间的等待,完成安装。如果不使用Anaconda,也可以使用pip进行安装。
打开Anaconda,在首页找到其中的jupyter,点击Launch运行jupyter(刚开始使用jupyter可能未安装的先点击install进行安装)。
点击New->Python 3创建一个Python文件,输入如下代码:
import torchimport torchvisionprint(torch.__version__)
如果程序没有报错,并且顺利输出PyTorch的版本号,表明已经成功安装了PyTorch与torchvision。