您的位置:首页 > 其它

Windows下安装PyTorch0.3.0

2017-12-31 17:31 671 查看
本文系转载,出处:关于 PyTorch 0.3.0 在Windows下的安装和使用

PyTorch简介

在2017年1月18日,
facebook
下的
Torch7
团队宣布
PyTorch
开源后就引来了剧烈的反响。
PyTorch
 是 
Torch
 在 
Python
 上的衍生版本。
Torch
 是一个使用 
Lua
 语言的神经网络库, 
Torch
 很好用, 但是 
Lua
 流行度不够, 所以
facebook
开发团队将 
Lua
 的 
Torch
 移植到了更流行的语言 
Python
 上,推出了
PyTorch
 。2017年12月5日,深度学习框架
PyTorch
更新到0.3.0。
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.5
左右,谷歌会正式为
TensorFlow
加入动态图的支持!

三.易于Debug

Pytorch在运行时可以生成动态图,开发者就可以在堆栈跟踪中看到哪一行代码导致了错误。你甚至可以在调试器中停掉解释器并看看某个层会产生什么。

PyTorch的Windows支持

PyTorch
官方暂时没有提供
Windows
下的
pip
或者
conda
安装包。不过关于
PyTorch
Windows
官方
CI
和官方版本,
Soumith
大神已经发话了:准备在
Pytorch 0.4.0
添加
Windows
正式版支持,
CI
版本正在搭建中。不过知乎有个用户蒲嘉宸为大家孜孜不倦地提供着自己在
Windows
 下的
PyTorch pip
conda
安装包。关于具体编译过程,大家可以去看下他的知乎主页。

PyTorch在Windows下的安装

据网友反应,这次的包需要
CUDA 9
 才能使用。
CUDA 8
 的包过两天上传,暂时可以访问这个页面获取
CI
的包进行使用,注意要先安装
VC2017 Redist
。在
conda-build
没有提供
MSVC 2017
的支持之前,我们没有办法来制作相应的
Conda
包,因此只能通过
whl
包来进行安装。具体怎么安装呢?目前将编译好的包上传到了
Github
Release页面上(旧的包没有启用BLAS,已删除,新的正在上传中),国内的在百度云,需要的用户可以自己下载安装。安装的命令如下:
# 对于 Conda 的用户
conda install numpy mkl pyyaml cffi

# For Python 3.5
pip install torch-0.3.0b0.591e73e-cp35-cp35m-win_amd64.whl

# For Python 3.6
pip install torch-0.3.0b0.591e73e-cp36-cp36m-win_amd64.whl
1
2
3
4
5
6
7
8
如果你是
Anaconda|Python
用户,请执行第一条命令,然后在这里下载对应
whl
文件或
bz2
文件进行安装。 
如果你安装了原生
Python
,请直接下载
whl
文件根据对应版本,按照后两条命令安装即可。 
另外下载链接里面文件对应
Python
PyTorch
多个版本,请根据自己的实际需要下载和安装。 
关于
bz2
文件的安装教程,见: Win10 Python3.6下安装Pytorch

测试

Python
交互模式下输入:
import torch
1
如果不报错,就是安装成功!笔者上传下自己和读者传来的安装成功图:



版本日志

错误修复

backward
中的错误会导致死锁
DataLoader
多线程时的内存泄漏
torch.cuda
中的缩进
bug

新功能

添加对 
CUDA
 和 
cuDNN
 新版本的支持
添加对 
Ninja
 和 
clcache
 编译器的支持

存在问题

Conda
下的
bz2b
包不支持 
Python3.5
 及以下的版本
不能支持 
torch.distributed
(分布式)、
NCCL
(多卡)和 
Magma

不能把 
num_worker
 设置为1以上的值。有问题可以尝试调成0。另外代码入口得用以下的if语句包裹。即代码里面必须要有:
if __name__ == '__main__':
1
Win10 Python3.6下安装Pytorch见本人另一篇博客:http://blog.csdn.net/xiangxianghehe/article/details/73500031,此版本是Pytorch0.2 。Ubuntu 16.04下安装的Pytorch的教程 见本人另一篇博客:http://blog.csdn.net/xiangxianghehe/article/details/78662289
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: