Torch7 开源 PyTorch:Python 优先深度学习框架

PyTorch 是一个 Python 软件包,其提供了两种高层面的功能:

使用强大的 GPU 加速的 Tensor 计算(类似 numpy)

构建于基于 tape 的 autograd 系统的深度神经网络

如有需要,你也可以复用你最喜欢的 Python 软件包(如 numpy、scipy 和 Cython)来扩展 PyTorch。目前这个版本是早期的 Beta 版,我们很快就会加入更多的功能。

PyTorch 介绍

在粒度层面(granular level)上,PyTorch 库包含了以下组件:

使用 PyTorch 的原因通常有二:

作为 numpy 的替代,以便使用强大的 GPU;

将其作为一个能提供最大的灵活性和速度的深度学习研究平台。

进一步阐述如下:

一个支持 GPU 的 Tensor 库

如果你使用 numpy,那么你就使用过 Tensor(即 ndarray)。

PyTorch 提供了支持 CPU 和 GPU 的 Tensor,可以极大地加速计算。

我们提供了各种各样的用于加速的张量例程(tensor routine),可以满足你的各种科学计算需求,比如 slicing、索引、数学运算、线性代数、reduction。而且它们非常快!

动态神经网络:基于 tape 的 autograd

PyTorch 有一种独特的神经网络构建方法:使用和重放 tape recorder。TensorFlow、Theano、Caffe 和 CNTK 等大部分框架对世界的视角都是静态的,让人们必须先构建一个神经网络,然后一次又一次地使用同样的结构;如果要想改变该网络的行为,就必须完全从头开始。

但使用 PyTorch,通过一种我们称之为「Reverse-mode auto-differentiation(反向模式自动微分)」的技术,你可以零延迟或零成本地任意改变你的网络的行为。我们灵感来自关于这一主题的许多研究论文以及当前和过去的研究成果,比如 autograd、autograd、Chainer 等。

autograd:https://github.com/twitter/torch-autograd

autograd:https://github.com/HIPS/autograd

Chainer:http://chainer.org/

尽管这项技术并非 PyTorch 独有,但它仍然是到目前为止最快的实现。你能为你的疯狂研究获得最高的速度和最佳的灵活性。

Python 优先

PyTorch 不是简单地在整体 C++框架上绑定 Python。它深入构建在 Python 之上。你可以像使用 numpy / scipy / scikit-learn 那样轻松地使用 PyTorch。你可以用你喜欢的库和包(如 Cython 和 Numba)在 Python 中编写新的神经网络层。我们的目标是尽量让你不用重新发明轮子。

命令式体验

PyTorch 的设计思路是线性、直观且易于使用。当你需要执行一行代码时,它会忠实执行。PyTorch 没有异步的世界观。当你打开调试器,或接收到错误代码和 stack trace 时,你会发现理解这些信息是非常轻松的。Stack-trace 点将会直接指向代码定义的确切位置。我们不希望你在 debug 时会因为错误的指向或异步和不透明的引擎而浪费时间。

快速精益

PyTorch 具有轻巧的框架。我们集成了各种加速库,如 Intel MKL、英伟达的 CuDNN 和 NCCL 来优化速度。在其核心,它的 CPU 和 GPU Tensor 与神经网络后端(TH、THC、THNN、THCUNN)被编写成了独立的库,带有 C99 API。

这种配置是成熟的,我们已经使用了多年。

因此,PyTorch 非常高效——无论你需要运行何种尺寸的神经网络。

在 PyTorch 中,内存的使用效率相比 Torch 或其它方式都更加高效。我们为 GPU 编写了自定义内存分配器,以保证深度学习模型在运行时有最高的内存效率,这意味着在相同硬件的情况下,你可以训练比以前更为复杂的深度学习模型。

轻松拓展

编写新的神经网络模块,或与 PyTorch 的 Tensor API 相接的设计都是很直接的,不太抽象。

你可以使用 Torch API 或你喜欢的基于 numpy 的库(比如 Scipy)来通过 Python 写新的神经网络层。

如果你想用 C++ 写网络层,我们提供了基于 cffi(http://cffi.readthedocs.io/en/latest/)的扩展 API,其非常有效且有较少的样板文件。

不需要写任何 wrapper code。这里有一个示例:https://github.com/pytorch/extension-ffi

安装

二进制

Anaconda

conda install pytorch torchvision -c soumith

来自源

Anaconda 环境的说明。

如果你想要用 CUDA 支持编译、安装:

NVIDIA CUDA 7.5 或之上的版本

NVIDIA CuDNN v5.x

安装可选依赖包

export CMAKE_PREFIX_PATH=[anaconda root directory]

conda install numpy mkl setuptools cmake gcc cffi

conda install -c soumith magma-cuda75 # or magma-cuda80 if CUDA 8.0

安装 PyTorch

export MACOSX_DEPLOYMENT_TARGET=10.9 # if OSX

pip install -r requirements.txt

python setup.py install

开始使用

从以下三点开始学习使用 PyTorch:

教程:开始了解并使用 PyTorch 的教程(https://github.com/pytorch/tutorials)。

案例:跨所有领域的轻松理解 PyTorch 代码(https://github.com/pytorch/examples)。

API 参考:http://pytorch.org/docs/

交流

论坛:讨论实现、研究等(http://discuss.pytorch.org

GitHub 问题反馈:bug 通知、特征要求、安装问题、RFC、想法等。

Slack:通常聊天、在线讨论、合作等(https://pytorch.slack.com/)。

邮件订阅没有骚扰信件、单向邮件推送 PyTorch 的重要通知。订阅:http://eepurl.com/cbG0rv

发布和贡献

PyTorch 的发布周期(主版本)为 90 天。目前的版本是 v0.1.6 Beta,我们期望在发布前尽量减少 bug。如果你发现了错误,欢迎向我们提交:

https://github.com/pytorch/pytorch/issues

我们欢迎所有形式的贡献。如果你希望帮助解决 bug,请直接上手,无需多作讨论。

如果你愿意为 PyTorch 提供新功能、实用函数或核心扩展,请先开一个 issue 与大家讨论一下。请注意:在未经讨论的情况下提交的 PR 可能会导致退回,因为我们可能会采取不同的解决方式。

在下一个版本中,我们计划推出三大新功能:

分布式 PyTorch

(这里已经有一个尝试性的实现了:https://github.com/apaszke/pytorch-dist)
反反向(Backward of Backward):在反向传播的过程中进行过程优化。一些过去和最近的研究如 Double Backprop 和 Unrolled GANs 会需要这种特性。

用于 autograd 的 Lazy Execution Engine:这将允许我们可以通过引入缓存和 JIT 编译器来优化 autograd 代码。

开发团队

PyTorch 是一个社区驱动的项目,由经验丰富的工程师和研究者开发。

目前,PyTorch 由 Adam Paszke、Sam Gross 与 Soumith Chintala 牵头开发。其他主要贡献者包括 Sergey Zagoruyko、Adam Lerer、Francisco Massa、Andreas Kopf、James Bradbury、Zeming Lin、田渊栋,Guillaume Lample、Marat Dukhan、Natalia Gimelshein 等人。

文章转载自 开源中国社区 [http://www.oschina.net]

时间: 2024-10-31 13:19:52

Torch7 开源 PyTorch:Python 优先深度学习框架的相关文章

TensorFlow和Caffe、MXNet、Keras等其他深度学习框架的对比

Google 近日发布了 TensorFlow 1.0 候选版,这第一个稳定版将是深度学习框架发展中的里程碑的一步.自 TensorFlow 于 2015 年底正式开源,距今已有一年多,这期间 TensorFlow 不断给人以惊喜.在这一年多时间,TensorFlow 已从初入深度学习框架大战的新星,成为了几近垄断的行业事实标准. 主流深度学习框架对比 深度学习研究的热潮持续高涨,各种开源深度学习框架也层出不穷,其中包括 TensorFlow.Caffe.Keras.CNTK.Torch7.MX

TensorFlow和Caffe、CNTK、MXNet等其他7种深度学习框架的对比

主流深度学习框架对比 深度学习研究的热潮持续高涨,各种开源深度学习框架也层出不穷,其中包括TensorFlow.Caffe8.Keras9.CNTK10.Torch711.MXNet12.Leaf13.Theano14.DeepLearning415.Lasagne16.Neon17,等等.然而TensorFlow却杀出重围,在关注度和用户数上都占据绝对优势,大有一统江湖之势.表2-1所示为各个开源框架在GitHub上的数据统计(数据统计于2017年1月3日),可以看到TensorFlow在st

TensorFlow与主流深度学习框架对比

引言:AlphaGo在2017年年初化身Master,在弈城和野狐等平台上横扫中日韩围棋高手,取得60连胜,未尝败绩.AlphaGo背后神秘的推动力就是TensorFlow--Google于2015年11月开源的机器学习及深度学习框架. TensorFlow在2015年年底一出现就受到了极大的关注,在一个月内获得了GitHub上超过一万颗星的关注,目前在所有的机器学习.深度学习项目中排名第一,甚至在所有的Python项目中也排名第一.本文将带我们简单了解下TensorFlow,并与其他主流深度学

十个值得一试的开源深度学习框架

本周早些时候Google开源了TensorFlow(GitHub),此举在深度学习领域影响巨大,因为Google在人工智能领域的研发成绩斐然,有着雄厚的人才储备,而且Google自己的Gmail和搜索引擎都在使用自行研发的深度学习工具. 无疑,来自Google军火库的TensorFlow必然是开源深度学习软件中的明星产品,登陆GitHub当天就成为最受关注的项目,当周获得评星数就轻松超过1万个. 对于希望在应用中整合深度学习功能的开发者来说,GitHub上其实还有很多不错的开源项目值得关注,首先

10 个值得一试的开源深度学习框架

本周早些时候 Google 开源了 TensorFlow(GitHub),此举在深度学习领域影响巨大,因为 Google 在人工智能领域的研发成绩斐然,有着雄厚的人才储备,而且 Google 自己的 Gmail 和搜索引擎都在使用自行研发的深度学习工具. 无疑,来自 Google 军火库的 TensorFlow 必然是开源深度学习软件中的明星产品,登陆 GitHub 当天就成为最受关注的项目,当周获得评星数就轻松超过 1 万个. 对于希望在应用中整合深度学习功能的开发者来说,GitHub 上其实

Intel开源了基于Apache Spark的分布式深度学习框架BigDL

Intel开源了基于Apache Spark的分布式深度学习框架BigDL.BigDL借助现有的Spark集群来运行深度学习计算,并简化存储在Hadoop中的大数据集的数据加载. 在Xeon服务器上运行的测试结果表明,BigDL比其他开源框架Caffe.Torch和TensorFlow有显著的性能提升.BigDL速度可与主流GPU匹敌,而且能够扩展到数十个Xeon服务器. BigDL库支持Spark 1.5.1.6和2.0版本,并容许将深度学习嵌入在现有的Spark程序中.BigDL库中有把Sp

带你测试对比深度学习框架!TensorFlow,Keras,PyTorch...哪家强?(附数据集)

深度学习框架哪家强:TensorFlow?Caffe?MXNet?Keras?PyTorch?对于这几大框架在运行各项深度任务时的性能差异如何,各位读者不免会有所好奇. 微软数据科学家Ilia Karmanov最新测试的结果显示,亚马逊MXNet在CNN.RNN与NLP情感分析任务上性能强劲,而TensorFlow仅擅长于特征提取. 测试详情更新在Ilia Karmanov的GitHub项目DeepLearningFrameworks(https://github.com/ilkarman/De

Facebook 开源深度学习框架 Torchnet

Facebook开源深度学习框架Torchnet,加快A.I研究步伐 今天,在新发布的一篇学术报告中,Facebook 详细介绍了新的人工智能开源软件 Torchnet,用于简化深度学习. 深度学习是当下一种时髦的学习方式,涉及到培训人工神经网络处理大量的数据,如图片,然后让神经网络做出新数据的预测.与其建立一个全新的深度学习框架, Facebook 选择的是在 Torch 上编译一个开源库,Facebook 先前也曾致力于此. "这 使得它很容易实现完全隐藏 I/O(输入 / 输出)成本功能,

DT科技评论第36期:Facebook开源Caffe2深度学习框架

DT科技评论 Data Technology Review 第 36 期           阿里云研究中心,人民网研究院,DeepTech深科技 本期目录 谷歌斥资2910万美元建数据中心 Facebook推出AR新应用 Facebook开源Caffe2深度学习框架 Facebook研发"意念打字" IBM Security App Exchange平台上的应用程序突破90个 谷歌发布新版谷歌地球 谷歌正在开发招聘App Malwarebytes实验室介绍:网络犯罪战术与技术报告 英