PyTorch是一个广泛用在数据科学,计算机科学里的机器学习框架. PyTorch和TensorFlow应用的普遍程度相当,远超其它框架. 并且PyTorch的新增用户数量在过去一年增长了近200%.
PyTorch的特点有哪些?
1. 动态图模式
TorchScript 非常完美地提供了动态图模式(eager 模式)与图模式(graph模式)之间的切换,使得生产效率得到提升!TensorFlow等机器学习框架使用图模式,主要有以下四个原因: (1)节省资源、高效运算.用户只需运算需要的依赖项,不需要的就可以不做运算. (2)利用图可以把整个运算过程分解成子过程. (3)便于分布式运算. 计算工作可以分给多个GPU、CPU或多个设备. (4)有很多机器学习模型,本身就是适用组织成图. [1] PyTorch提供的另一种模式是Eager模式. 其特点是:在该模式下,用户不需要先构造图,然后再使用Session.run(),而是可以得到即时的反馈。这种模式在研究和开发时会更加符合直觉.
2. 分布式训练过程
由于有了分布式通讯包(torch.distributed) ,可扩展的分布式训练过程,科学研究和工业界的性能优化变得可能. torch.distributed包为在一台或多台机器上运行的多个计算节点上的多进程并行性提供PyTorch支持.
3. 工具和库的特点
PyTorch更丰富的工具和库,使得它的应用拓宽到了计算机视觉之研究,NLP等.
4. Cloud Partners
PyTorch可在主要的云平台上运行, 使得开发和扩展(scaling)非常简单.[2]
PyTorch的安装方法
网站https://pytorch.org/get-started/locally/ 列出了各种操作系统下安装PyTorch的命令. 用户可以选择用Conda, pip, LibTorch或Source四种方式来安装PyTorch. 比如,我们选择用pip来安装PyTorch.
方法一
对于WIndows 系统,可在Conda Prompt上输入:
pip3 install torch===1.3.1 torchvision===0.4.2 -f https://download.pytorch.org/whl/torch_stable.html
或者,如果需要考虑时间限制,可增加 --default-timeout选项:
pip3 --default-timeout=100 install torch===1.3.1 torchvision===0.4.2 -f https://download.pytorch.org/whl/torch_stable.html
对于Linux系统,Python3.x已经默认安装了,但是pip并没有被安装。先安装pip:
sudo apt install python3-pip
然后,直接在终端输入:
pip3 install torch torchvision
方法二
如果用方法一速度太慢,可用清华大学提供的软件镜像.[3,4] 安装方法如下:
(1) 添加适当的channels. [5] 如:打开Anaconda prompt, 在命令行输入:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --set show_channel_urls yes
(2) 再用如下方法安装PyTorch:
conda install pytorch torchvision cudatoolkit=10.0
详情可参考 [3,4].
确认安装完成
为保证PyTorch已经正确地安装,我们可以运行一些PyTorch样本代码. 例如,构造随机初始化的张量.
from __future__ import print_function
import torch
x = torch.rand(2, 3)
print(x)
输出结果如下:
tensor([[0.6406, 0.6838, 0.5105],
[0.4533, 0.8335, 0.0747]])
如能看到上面的结果,则说明PyTorch 安装已经成功安装好!
参考:
[1]https://blog.csdn.net/plSong_CSDN/article/details/94405047
[2] https://pytorch.org/
[3] https://blog.csdn.net/zzq060143/article/details/88042075
[4] https://www.jianshu.com/p/9ce5f3c3af99
[5]同理,对于不想要的源,也可以删除, 比如
conda config --remove channels 'https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/'