写点什么

PyTorch 1.0 宣布用于研究和生产 AI 项目

  • 2018-05-21
  • 本文字数:1357 字

    阅读完需:约 4 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

在最近的一篇博文中,脸书的副总裁 Bill Jia 宣布了 PyTorch 的新版本 1.0 的发布。PyTorch 是用于 Python 的开源 AI 框架软件包,具有 Tensor 计算,包括强大的 GPU 加速和建立于基于磁带 autodiff 系统之上的深度神经网络。该新版本的重要性在于,减少了从研究过程到生产过程中移动 AI 驱动的项目所需的时间,同时提高了这些应用程序的准确度和性能。这些改进的发生,部分是因为混合前端在命令式和声明式执行模式间的转换。

PyTorch 的核心优势在于,它是前端必不可少的部分,它通过适应性可编程模式实现迭代原型设计和实验。PyTorch 的第一个版本发布于 2017 年早些时候,其软件包的下载次数已经超过了 110 万次。Jia 将它的流行归因于:

它的速度、生产力和支持最前沿 AI 模型(如动态图形)的能力迅速使之成为最受 AI 研究人员欢迎的重要开发工具。

PyTorch 应用的一个众所周知的例子是,加州大学伯克利分校计算机科学家所构建的项目,它基于循环一致对抗网络进行非配对图到图的转换。该项目通过使用一组对齐的图像训练集来学习图像输入和输出映射。

图像来源: https://junyanz.github.io/CycleGAN/

PyTorch 目前的版本已经取得了一些成果,为 AI 研究、开发和生产规模上的性能提供了灵活性,但是,也存在一些挑战。Jia 解释说:

由于它和 Python 紧密的耦合,我们常常需要把研究代码(无论是训练脚本还是经过训练的模型)转换为 Caffe2 中的图形模式表示,以在生产规模上运行。Caffe2 的基于图形执行程序允许开发人员利用最先进的优化技术,比如图形转换、高效的内存重用和严格的硬件接口集成等等。

另外,PyTorch 1.0 集成了 Caffe2 和 ONNX 的功能,并把它与 PyTorch 的能力结合在一起,以提供从研究原型到生产部署的无缝路径。通过利用 Caffe2,建立 PyTorch 依赖关系的公司也能够期望获得对更大的规模和可靠性的支持。PyTorch博客更进一步解释了使用 Caffe2 的重要性:

初创企业、大公司和任何希望围绕 PyTorch 构建产品的人都要求获得产品支持。在脸书(PyTorch 的最大利益相关者),我们拥有 Caffe2,它已经是生产就绪平台,运行于我们的数据中心,并向横跨 8 代 iPhone 以及 6 代安卓 CPU 架构的超过 10 亿部手机交付产品。它在 Inter/ARM、TensorRT 支持以及所有生产所需的位数上有服务器优化推理。考虑到所有这些价值锁定在 PyTorch 团队与其密切合作的平台上,我们决定把 PyTorch 和 Caffe2 结合在一起,从而为 PyTorch 提供生产级准备。

ONNX 是一种开放格式,用于表示那些能够在不同 AI 框架之间交换的深度学习模型。在 PyTorch 1.0 中,ONNX 是本地支持的导出模型。它也为加速运行时间和硬件特定库提供了接口。Jia 提到了这种方法的一些好处:

它给予开发人员完全的自由,以混合和匹配最好的 AI 框架和工具,而无需承担资源密集型的定制工程。

PyTorch 项目期望于 2018 年夏季的某个时候发布 1.0 版本,并且可以在其 GitHup repo 上查看 pull requests。

查看英文原文: PyTorch 1.0 Announced for Research and Production AI Projects


感谢冬雨对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2018-05-21 19:001827
用户头像

发布了 199 篇内容, 共 84.7 次阅读, 收获喜欢 295 次。

关注

评论

发布
暂无评论
发现更多内容

史上最优美的Android原生UI框架XUI使用指南

android UI 框架开发

史上最好用的Android全量版本更新库XUpdate使用指南

android UI 框架开发 xupdate

架构词典:SLA

lidaobing

架构 SLA

如何利用小熊派获取MPU6050六轴原始数据

华为云开发者联盟

物联网 IoT 小熊派

腾讯云区块链总经理李力:产业区块链的四大发展趋势

CECBC

区块链 大数据

我是因为这个才选择当程序员的,那么你呢?

Java架构师迁哥

移动端技术方案设计的经验总结

张明云

android 架构 移动应用 架构师 技术方案

史上最实用的Android切片应用库XAOP使用指南

android 开源 aop 框架

技术博客,从零到数万访问,这两年我都做了什么

android 博客 经验分享

roblox 杂记

katichar

【硬件篇之电源纹波噪声测试】

良知犹存

硬件

一文搞懂RESTful API

bigsai

RESTful Rest

话题讨论 | 那些年奇葩的面试经历

三号无名指

话题讨论

架构师训练营第12周作业

邓昀垚

第十一周课后练习

饭桶

为什么说区块链完全去中心化做不到且没有意义

CECBC

区块链 去中心化

Java对IPv6的支持详解:支持情况、相关API、演示代码等

JackJiang

Java 网络编程 ipv6 ipv4

default-servlet-handler不生效原因,springmvc静态资源拦截方案比较

叫练

springmvc 静态资源拦截 default-servlet-handler 资源配置不生效

如何在高速发展中等一等老人 银行数字化服务显温度

CECBC

银行 养老服务

深入理解Git的实现原理

程序员小灰

c++ git Linux 项目管理 架构师

Flutter Plugin插件开发填坑指南

flutter 经验分享

网络入门模拟器:Cisco Packet Tracer

通用软件快速开发平台对企业信息化的影响

雯雯写代码

软件 快速开发 企业信息化

第11周学习总结

饭桶

开源软件联盟PostgreSQL分会投稿指南

PostgreSQLChina

数据库 postgresql 软件 投稿

详解TCP IP网络协议栈底层原理到徒手实现

赖猫

c++ Linux 编程 程序 网络协议栈

Gemini双子新约软件系统开发|Gemini双子新约APP开发

系统开发

架構師訓練營第 1 期 - 第 11 周作業

Panda

架構師訓練營第 1 期

Reactor线程模型浅析

赖猫

c++ Linux 编程 reactor 编程语言

架构师训练营第 1 期 - 第十一周作业

Todd-Lee

极客大学架构师训练营

史上最全的开源项目创作指南

开源 经验分享

PyTorch 1.0宣布用于研究和生产AI项目_开源_Kent Weare_InfoQ精选文章