就在今天,PyTorch官方在GitHub发布了全新的0.4.0版本,新版本完全改变了API,是本年度最重大的升级。不过最重要的应该是为广大Windows用户提供了官方Windows版本!对于我等windows用户简直是个喜大普奔的好消息!
“Windows Support” 郝然在列!
TensorFlow依旧独领风骚,PyTorch仍然虎视眈眈。TensorFlow发布一年后,Facebook在2017年1月推出了PyTorch。它是经典机器学习库Torch框架的一个端口,Torch二进制文件包装于GPU加速的Python。PyTorch在TensorFlow有着绝对流行度的形势下依旧有着越来越多的青睐者。除了GPU加速和内存使用的高效外,PyTorch受欢迎的主要因素是动态计算图的使用。已经有其他一些不太知名的深度学习框架使用动态计算图,例如Chainer。而动态图的优点在于,图(graph)是由run定义(“define by run”),而不是传统的“define and run”。特别是,在输入可以变化的情况下,例如文本这样的非结构化数据,这非常有用而且高效。
就如PyTorch官网介绍的那样:
PyTorch is a deep learning framework that puts Python first.
更新内容目录
主要核心变更
- Tensor/Variable合并
- 零维张量
- dtypes
- 迁移指南
新功能
- 张量:全面支持高级索引;快速傅立叶变换
- 神经网络:权衡内存计算;bottleneck - 一个在你的代码中识别hotspots的工具
- 概率分布:24个基本概率分布;增加了cdf,方差,熵,困惑度(perplexity)等。
- 分布式训练:易于使用的Launcher utility;NCCL2后端
- C ++扩展
- Windows支持
- ONNX改进:RNN支持
性能改进
Bug修复
主要核心变化
以下是用户每天使用的最重要的核心功能的更新。
主要变化和潜在的重要更新:
- Tensors 和 Variables 已经合并
- 有些操作会返回0维(标量)Tensors
- 弃用了 volatile flag
改进:
- 添加了 dtypes,devices 和 Numpy 风格的 Tensor 创建函数
- 支持编写与device无关的代码
PyTorch团队编写了一个迁移指南,帮助用户将代码转换为新的API和style。 如果您想要迁移以前版本的PyTorch中的代码。
迁移指南:http://pytorch.org/2018/04/22/0_4_0-migration-guide.html
本部分的内容(主要核心变更)包含在迁移指南中。
合并 Tensor 和 Variable 类
torch.autograd.Variable 和 torch.Tensor 现在是同一类。更确切地说,torch.Tensor 能够跟踪历史并像旧的 Variable 一样运行;Variable 的换行继续像以前一样工作,但返回的对象类型变成 torch.Tensor。这意味着你不再需要将代码中的任何 Variable wrapper。
Tensor 的 type( ) 已经改变
还要注意 Tensor 的 type( ) 不再反映数据类型。使用isinstance()或 x.type()来代替:
>>> x = torch.DoubleTensor([1, 1, 1])
>>> print(type(x)) # was torch.DoubleTensor
<class 'torch.autograd.variable.Variable'>
>>> print(x.type()) # OK: 'torch.DoubleTensor'
'torch.DoubleTensor'
>>> print(isinstance(x, torch.DoubleTensor)) # OK: True
True
Windows支持
PyTorch现在正式支持Windows!我们为Python 3.5和3.6提供预编译的Conda二进制文件和pip wheels。Windows上的PyTorch不支持分布式训练,可能比Linux / OSX慢一点,因为Visual Studio支持较早版本的OpenMP。
Windows安装方法(以Python3.6为例):
Conda安装:
conda install pytorch -c pytorch
pip3 install torchvision
pip安装:
pip3 install http://download.pytorch.org/whl/cu80/torch-0.4.0-cp36-cp36m-win_amd64.whl
pip3 install torchvision
注意:本文归作者所有,未经作者允许,不得转载