更新提醒:本文已过期,PyTorch1.5正式版已在2020年4月21发布,Windows下安装最新的PyTorch1.5请移步本人另一篇博客:Windows下安装PyTorch1.5。
PyTorch简介
在2017年1月18日,facebook
下的Torch7
团队宣布PyTorch
开源后就引来了剧烈的反响。PyTorch
是 Torch
在 Python
上的衍生版本。Torch
是一个使用 Lua
语言的神经网络库, Torch
很好用, 但是 Lua
流行度不够, 所以facebook
开发团队将 Lua
的 Torch
移植到了更流行的语言 Python
上,推出了PyTorch
。
PyTorch
是一个Python
优先的深度学习框架,是一个和tensorflow,Caffe,MXnet
一样,非常底层的框架。先说下PyTorch
相比于Tensorflow
的三大优势:
一.Python优先支持
PyTorch主推的特性之一,就是支持Python(官方的提法:puts Python first
)。因为直接构建自 Python C API,PyTorch
从细粒度上直接支持python的访问。相比于原生Python
实现,引入的新概念很少,这不仅降低了 Python
用户理解的门槛,也能保证代码基本跟原生的 Python
实现一致。事实上,开发者可以直接用原生 Python
代码扩展 PyTorch
的 operation
。
而Tensorflow
总有一种用 Python
调用 C++
写的第三方动态链接库的感觉;写模型需要更多代码,无法贯彻 Python
的简约风格;而且写新的 operation
必须用 C++
开发。
二.动态图的良好支持
Tensorflow
运行必须提前建好静态计算图,然后通过feed
和run
重复执行建好的图。但是Pytorch
却不需要这么麻烦:PyTorch
的程序可以在执行时动态构建/调整计算图。相对来说,pytorch具有更好的灵活性。这得益于PyTorch
直接基于 Python C API
构建的 Python
接口。
TensorFlow
饱受诟病的痛点就是只支持静态图模型。也就是说,在处理数据前必须预先定义好一个完整的模型。如果数据非常规整,那还好。但实际工程和研究项目中的数据,难免有一些边角的情况。很多项目,其实需要大量实验才能选择正确的图模型。这就很痛苦了。因此,很多项目转而采用了PyTorch
等支持动态图模型的框架,以便在运行程序的时候动态修正模型。
不过在2017年10月31日万圣节这天,Google
发布了TensorFlow Eager Execution
(贪婪执行),为TensorFlow
添加了命令式编程的接口。启用贪婪执行后,TensorFlow
操作会立刻执行,不用通过Session.run()
执行一个预先定义的图。相信在不久的TensorFlow1
版本,谷歌会正式为TensorFlow
加入动态图的支持!
三.易于Debug
Pytorch在运行时可以生成动态图,开发者就可以在堆栈跟踪中看到哪一行代码导致了错误。你甚至可以在调试器中停掉解释器并看看某个层会产生什么。
PyTorch的官方Windows支持
2018年4月25日,PyTorch
官方发布 0.4.0 版本,该版本的PyTorch
有多项重大更新,其中最重要的改进是支持 Windows
系统。Windows
用户能直接通过conda
、pip
和源码编译三种方式来安装Pytorch,不过需要强调Windows
下的Pytorch
仅支持Python3.5
和Python3.6
,不支持其他的Python3
版本,也不支持Python2
。我们在官网就能看到相应的安装方式:
方法一:pip安装
Python3.6+pip安装cpu版本
pip install http://download.pytorch.org/whl/cpu/torch-0.4.0-cp36-cp36m-win_amd64.whl
Python3.5+pip安装cpu版本
pip install http://download.pytorch.org/whl/cpu/torch-0.4.0-cp35-cp35m-win_amd64.whl
Python3.6+pip安装gpu版本
目前gpu
版本支持cuda8.0
,cuda9.0
和cuda9.1
,请选择对应的版本下载安装,不要同时执行下面三个命令!
pip install http://download.pytorch.org/whl/cu80/torch-0.4.0-cp36-cp36m-win_amd64.whl
pip install http://download.pytorch.org/whl/cu90/torch-0.4.0-cp36-cp36m-win_amd64.whl
pip install http://download.pytorch.org/whl/cu91/torch-0.4.0-cp36-cp36m-win_amd64.whl
Python3.5+pip安装gpu版本
目前gpu
版本支持cuda8.0
,cuda9.0
和cuda9.1
,请选择对应的版本下载安装,不要同时执行下面三个命令!
pip install http://download.pytorch.org/whl/cu80/torch-0.4.0-cp35-cp35m-win_amd64.whl
pip install http://download.pytorch.org/whl/cu90/torch-0.4.0-cp35-cp35m-win_amd64.whl
pip install http://download.pytorch.org/whl/cu91/torch-0.4.0-cp35-cp35m-win_amd64.whl
方法二:Conda安装
如果你是Anaconda|Python
用户,就不需要区分Python3.5
和Python3.6
,执行命令:
conda install pytorch -c pytorch
就可以完成安装。不过这个默认安装的是cuda8.0
的gpu
版本,如果你需要安装cuda9.0
或cuda1.0
的gpu
版本,请执行:
conda install pytorch cuda90 -c pytorch
或者
conda install pytorch cuda91 -c pytorch
来进行安装。
测试安装是否成功
import torch
print(torch.__version__)
如果输出0.4.0
,那么恭喜Windows下的PyTorch0.4.0
安装成功!
最后需要安装 torchvision
:
pip install torchvision
一般gpu
版本配置需要cuDNN
,而cuDNN
需要注册才能下载,下载速度太慢,有网友提供两个百度云的下载链接,cuDNN安装教程见这里。
Win10-x64+CUDA8+cuDNN v7
Win10-x64+CUDA8+cuDNN v6