新智元报道
来源:Pytorch 官网
【新智元导读】今天,PyTorch官方在GitHub发布0.4.0版本,最重要的改进是支持Windows系统。新版本完全改变了API,是本年度最重大的升级。
TensorFlow依旧有王者荣耀,但PyTorch虎视眈眈。
今天,PyTorch官方在GitHub发布0.4.0版本,最重要的改进是支持Windows系统。
PyTorch是在2017年1月由Facebook推出的。它是经典机器学习库Torch框架的一个端口,Torch二进制文件包装于GPU加速的Python。
除了GPU加速和内存使用的高效外,PyTorch受欢迎的主要因素是动态计算图的使用。已经有其他一些不太知名的深度学习框架使用动态计算图,例如Chainer。
动态图的优点在于,图(graph)是由run定义(“define by run”),而不是传统的“define and run”。特别是,在输入可以变化的情况下,例如文本这样的非结构化数据,这非常有用而且高效。
图:PyTorch动态计算图 - 来源:http://pytorch.org/about/
以下为更新内容目录:
主要核心变更
Tensor/Variable合并
零维张量
dtypes
迁移指南
新功能
张量
全面支持高级索引
快速傅立叶变换
神经网络
权衡内存计算
bottleneck - 一个在你的代码中识别hotspots的工具
torch.distributions
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
本部分的内容(主要核心变更)包含在迁移指南中。
torch.autograd.Variable 和 torch.Tensor 现在是同一类。更确切地说,torch.Tensor 能够跟踪历史并像旧的 Variable 一样运行;Variable 的换行继续像以前一样工作,但返回的对象类型变成 torch.Tensor。这意味着你不再需要将代码中的任何 Variable wrapper。
Tensor 的 type( ) 已经改变
还要注意 Tensor 的 type( ) 不再反映数据类型。使用isinstance()或 x.type()来代替:
PyTorch现在正式支持Windows!我们为Python 3.5和3.6提供预编译的Conda二进制文件和pip wheels。Windows上的PyTorch不支持分布式训练,可能比Linux / OSX慢一点,因为Visual Studio支持较早版本的OpenMP。
与往常一样,你可以使用http://pytorch.org上的命令在Windows上安装PyTorch。
这里有一个常见问题解答,可以解答你在Windows上可能遇到的大多数问题:http://pytorch.org/docs/stable/notes/windows.html
更多细节,请参考PyTorch的GitHub页面:https://github.com/pytorch/pytorch/releases/tag/v0.4.0