当前位置:首页 > 天道酬勤 > 正文内容

()

张世龙2021年12月21日 13:26天道酬勤460

从PyTorch.org中选择

机器的心编译

参加: jsdzh、李泽南、mldct

Torch7队将PyTorch设为开源。 官网称,PyTorch是Python首选的深度学习框架,可以基于强大的GPU加速实现skdbbt和动态神经网络。

官方网站: http://pytorch.org

github:https://github.com/py torch/py torch

PyTorch是一个Python包,提供两个高级功能:

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

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

如果需要,还可以重复使用收藏夹的Python包(如numpy、scipy和Cython )来扩展PyTorch。 现在,这个版本是早期的测试版,很快就会添加更多的功能。

PY轨道介绍

在“粒度级别”(granular level )中,PyTorch库包含以下组件:

使用PyTorch的理由通常有两个。

使用强大的GPU代替numpy;

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

再作如下陈述

支持GPU的Tensor库

使用numpy时,我使用过Tensor (即ndarray )。

PyTorch提供了支持CPU和GPU的Tensor,大大加快了计算速度。

提供了各种skdbbt例程(tensor routine )以满足各种科学计算需要,如slicing、索引、数学运算、线性代数和reduction等。 而且它们很快!

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

PyTorch有一种独特的神经网络构建方法,即使用tape recorder进行播放。 由于TensorFlow、Theano、Caffe、CNTK等大多数框架对世界的看法是静态的,人们必须首先构建神经网络,然后多次使用相同的结构; 要改变这个网络的行为,必须从完全开始。

但是,使用PyTorch,通过被称为“反转模式自动差异”的技术,可以使延迟为零、成本为零,从而任意改变网络的行为。 我们从很多关于这个主题的研究论文和autograd、autograd、Chainer等现在和过去的研究成果中得到了灵感。

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

autograd:https://Github.com/Hips/autograd

通道: http://通道. org /

这项技术不仅是PyTorch实现的,也是迄今为止实现最快的。 你可以为你的疯狂研究获得最高的速度和最高的灵活性。

Python优先

PyTorch并不是简单地将Python绑定到整个c框架上。 深深地构建在Python之上。 可以像使用numpy/scipy/sci套件- learn一样简单地使用PyTorch。 可以使用Cython和Numba等喜欢的库和包,在Python上创建新的神经网络层。 我们的目标是防止你重新发明车轮。

命令式的体验

PyTorch的设计理念是直线、直观、易于使用。 jkdyt在需要执行一行代码时,会忠实地执行。 PyTorch没有异步的世界观。 jkdyt打开调试器、接收错误代码或堆栈跟踪时,会发现理解这些信息非常容易。 堆栈跟踪点直接指向代码定义的确切位置。 调试错误时,我不想把时间浪费在错误的指向、异步、不透明的引擎上。

快速清洁

PyTorch有一个轻量级的框架。 我们整合了Intel mkl、NVIDIA的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 可能会导致退回,因为我们可能会采取不同的解决方式。

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

1、分布式 PyTorch

(这里已经有一个尝试性的实现了:https://github.com/apaszke/pytorch-dist)

2、反反向(Backward of Backward):在反向传播的过程中进行过程优化。一些过去和最近的研究如 Double Backprop 和 Unrolled GANs 会需要这种特性。

3、用于 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、sdpy,Guillaume Lample、Marat Dukhan、Natalia Gimelshein 等人。

Note:本项目与 hughperkins/pytorch 有相同的名字,但无关联。

扫描二维码推送至手机访问。

版权声明:本文由花开半夏のブログ发布,如需转载请注明出处。

本文链接:https://www.zhangshilong.cn/work/26342.html

分享给朋友:

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。