您当前所在位置: > 爆料站 > 有深度

TensorFlow与PyTorch之争,哪个框架最适合深度学习

时间:2019-09-01 15:02:28  来源:  作者:网络

原标题:TensorFlow与PyTorch之争,哪个框架最适合深度学习

选自builtin

作者:Vihar Kurama

参与:吴攀、杜伟

谷歌的 Tensorflow 与 Facebook 的 PyTorch 一直是颇受社区欢迎的两种深度学习框架。那么究竟哪种框架最适宜自己手边的深度学习项目呢?本文作者从这两种框架各自的功能效果、优缺点以及安装、版本更新等诸多方面给出了自己的建议。

如果你在读这篇文章,那么你可能已经开始了自己的深度学习之旅。如果你对这一领域还不是很熟悉,那么简单来说,深度学习使用了「人工神经网络」,这是一种类似大脑的特殊架构,这个领域的发展目标是开发出能解决真实世界问题的类人计算机。为了帮助开发这些架构,谷歌、Facebook 和 Uber 等科技巨头已经为 Python 深度学习环境发布了多款框架,这让人们可以更轻松地学习、构建和训练不同类型的神经网络。本文将详细介绍和比较两种流行的框架:TensorFlow 与 PyTorch。

目录

  • 谷歌的 TensorFlow
  • Facebook 的 PyTorch
  • 我们可以用 TensorFlow 和 PyTorch 构建什么?
  • PyTorch 和 TensorFlow 对比
  • PyTorch 和 TensorFlow 的优点和缺点
  • PyTorch 和 TensorFlow 安装、版本、更新
  • TensorFlow 还是 PyTorch?我的建议

谷歌的 TensorFlow

TensorFlow 是谷歌的开发者创造的一款开源的深度学习框架,于 2015 年发布。官方研究发布于论文《TensorFlow:异构分布式系统上的大规模机器学习》。

论文地址:http://download.tensorflow.org/paper/whitepaper2015.pdf

TensorFlow 现已被公司、企业与创业公司广泛用于自动化工作任务和开发新系统,其在分布式训练支持、可扩展的生产和部署选项、多种设备(比如安卓)支持方面备受好评。

Facebook 的 PyTorch

PyTorch 是最新的深度学习框架之一,由 Facebook 的团队开发,并于 2017 年在 GitHub 上开源。有关其开发的更多信息请参阅论文《PyTorch 中的自动微分》。

论文地址:https://openreview.net/pdf?id=BJJsrmfCZ

PyTorch 很简洁、易于使用、支持动态计算图而且内存使用很高效,因此越来越受欢迎。接下来还会更详细地介绍。

我们可以用 TensorFlow 和 PyTorch 构建什么?

神经网络起初是被用于解决手写数字识别或用相机识别汽车注册车牌等简单的分类问题。但随着近来框架的发展以及英伟达高计算性能图形处理单元(GPU)的进步,我们可以在 TB 级的数据上训练神经网络并求解远远更加复杂的问题。一个值得提及的成就是在 TensorFlow 和 PyTorch 中实现的卷积神经网络在 ImageNet 上都达到了当前最佳的表现。训练后的模型可以用在不同的应用中,比如目标检测、图像语义分割等等。

尽管神经网络架构可以基于任何框架实现,但结果却并不一样。训练过程有大量参数都与框架息息相关。举个例子,如果你在 PyTorch 上训练一个数据集,那么你可以使用 GPU 来增强其训练过程,因为它们运行在 CUDA(一种 C++ 后端)上。TensorFlow 也能使用 GPU,但它使用的是自己内置的 GPU 加速。因此,根据你所选框架的不同,训练模型的时间也总是各不相同。

TensorFlow 顶级项目

Magenta:一个探索将机器学习用作创造过程的工具的开源研究项目:https://magenta.tensorflow.org/

Sonnet:这是一个基于 TensorFlow 的软件库,可用于构建复杂的神经网络:https://sonnet.dev/

Ludwig:这是一个无需写代码就能训练和测试深度学习模型的工具箱:https://uber.github.io/ludwig/

PyTorch 顶级项目

CheXNet:使用深度学习来分析胸部 X 光照片,能实现放射科医生水平的肺炎监测:https://stanfordmlgroup.github.io/projects/chexnet/

PYRO:这是一种用 Python 编写的通用概率编程语言(PPL),后端由 PyTorch 支持:https://pyro.ai (https://pyro.ai/)

Horizon:一个用于应用强化学习(Applied RL)的平台:https://horizonrl.com (https://horizonrl.com/)

这些只是基于 TensorFlow 和 PyTorch 构建的少量框架和项目。你能在 TensorFlow 和 PyTorch 的 GitHub 和官网上找到更多。

PyTorch 和 TensorFlow 对比

PyTorch 和 TensorFlow 的关键差异是它们执行代码的方式。这两个框架都基于基础数据类型张量(tensor)而工作。你可以将张量看作是下图所示的多维数组。

机制:动态图定义与静态图定义

TensorFlow 框架由两个核心构建模块组成:

  • 一个用于定义计算图以及在各种不同硬件上执行这些图的运行时间的软件库。
  • 一个具有许多优点的计算图(后面很快就会介绍这些优点)。

计算图是一种将计算描述成有向图的抽象方式。图是一种由节点(顶点)和边构成的数据结构,是由有向的边成对连接的顶点的集合。

当你在 TensorFlow 中运行代码时,计算图是以静态方式定义的。与外部世界的所有通信都是通过 tf.Sessionobject 和 tf.Placeholder 执行,它们是在运行时会被外部数据替换的张量。例如,看看以下代码段:

下图是 TensorFlow 中运行代码之前以静态方式生成计算图的方式。计算图的核心优势是能实现并行化或依赖驱动式调度(dependency driving scheduling),这能让训练速度更快,更有效率。

类似于 TensorFlow,PyTorch 也有两个核心模块:

  • 计算图的按需和动态构建
  • Autograd:执行动态图的自动微分

可以在下图中看到,图会随着执行过程而改变和执行节点,没有特殊的会话接口或占位符。整体而言,这个框架与 Python 语言的整合更紧密,大多数时候感觉更本地化。因此,PyTorch 是更 Python 化的框架,而 TensorFlow 则感觉完全是一种新语言。

根据你所用的框架,在软件领域有很大的不同。TensorFlow 提供了使用 TensorFlow Fold 库实现动态图的方式,而 PyTorch 的动态图是内置的。

分布式训练

PyTorch 和 TensorFlow 的一个主要差异特点是数据并行化。PyTorch 优化性能的方式是利用 Python 对异步执行的本地支持。而用 TensorFlow 时,你必须手动编写代码,并微调要在特定设备上运行的每个操作,以实现分布式训练。但是,你可以将 PyTorch 中的所有功能都复现到 TensorFlow 中,但这需要做很多工作。下面的代码片段展示了用 PyTorch 为模型实现分布式训练的简单示例:

可视化

在训练过程的可视化方面,TensorFlow 更有优势。可视化能帮助开发者跟踪训练过程以及实现更方便的调试。TensorFlow 的可视化库名为 TensorBoard。PyTorch 开发者则使用 Visdom,但是 Visdom 提供的功能很简单且有限,所以 TensorBoard 在训练过程可视化方面更好。

TensorBoard 的特性:

  • 跟踪和可视化损失和准确度等指标
  • 可视化计算图(操作和层)
  • 查看权重、偏差或其它张量随时间变化的直方图
  • 展示图像、文本和音频数据
  • 分析 TensorFlow 程序

在 TensorBoard 中可视化训练

Visdom 的特性

  • 处理回调
  • 绘制图表和细节
  • 管理环境

在 Visdom 中可视化训练

生产部署

在将训练好的模型部署到生产方面,TensorFlow 显然是赢家。我们可以直接使用 TensorFlow serving 在 TensorFlow 中部署模型,这是一种使用了 REST Client API 的框架。

使用 PyTorch 时,在最新的 1.0 稳定版中,生产部署要容易一些,但它没有提供任何用于在网络上直接部署模型的框架。你必须使用 Flask 或 Django 作为后端服务器。所以,如果要考虑性能,TensorFlow serving 可能是更好的选择。

用 PyTorch 和 TensorFlow 定义一个简单的神经网络

我们比较一下如何在 PyTorch 和 TensorFlow 中声明神经网络。

在 PyTorch 中,神经网络是一个类,我们可以使用 torch.nn 软件包导入构建架构所必需的层。所有的层都首先在 __init__ 方法中声明,然后在 forward 方法中定义输入 x 在网络所有层中的遍历方式。最后,我们声明一个变量模型并将其分配给定义的架构(model = NeuralNet)。

近期 Keras 被合并到了 TensorFlow 库中,这是一个使用 TensorFlow 作为后端的神经网络框架。从那时起,在 TensorFlow 中声明层的句法就与 Keras 的句法类似了。首先,我们声明变量并将其分配给我们将要声明的架构类型,这里的例子是一个 Sequential 架构。

接下来,我们使用 model.add 方法以序列方式直接添加层。层的类型可以从 tf.layers 导入,如下代码片段所示:

TensorFlow 和 PyTorch 的优缺点

TensorFlow和PyTorch各有其优缺点。

TensorFlow 的优点:

  • 简单的内置高级 API
  • 使用 TensorBoard 可视化训练
  • 通过 TensorFlow serving 容易实现生产部署
  • 很容易的移动平台支持
  • 开源
  • 良好的文档和社区支持

TensorFlow 的缺点:

  • 静态图
  • 调试方法
  • 难以快速修改

PyTorch 的优点

  • 类 Python 的代码
  • 动态图
  • 轻松快速的编辑
  • 良好的文档和社区支持
  • 开源
  • 很多项目都使用 PyTorch

PyTorch 的缺点:

  • 可视化需要第三方
  • 生产部署需要 API 服务器

PyTorch 和 TensorFlow 安装、版本、更新

PyTorch 和 TensorFlow 近期都发布了新版本:PyTorch 1.0(首个稳定版)和 TensorFlow 2.0(beta 测试版)。这两个版本都有重大的更新和新功能,让训练过程更高效、流畅和强大。

如果你要在自己的机器上安装这些框架的最新版,你可以用源代码 build 或通过 pip 安装。

PyTorch 安装

macOS 和 Linux

pip3install torch torchvision

Windows

pip3 install https:/ /download.pytorch.org/whl/cu90/torch- 1.1. 0-cp36-cp36m-win_amd64.whl

pip3 install https:/ /download.pytorch.org/whl/cu90/torchvision- 0. 3.0-cp36-cp36m-win_amd64.whl

TensorFlow 安装

macOS、Linux 和 Windows

# Current stable release for CPU-only

pip installtensorflow

# Install TensorFlow 2.0 Beta

pip installtensorflow== 2.0.0-beta1

要检查安装是否成功,可使用命令提示符或终端按以下步骤操作。

TensorFlow 还是 PyTorch?我的建议

TensorFlow 是一种非常强大和成熟的深度学习库,具有很强的可视化功能和多个用于高级模型开发的选项。它有面向生产部署的选项,并且支持移动平台。另一方面,PyTorch 框架还很年轻,拥有更强的社区动员,而且它对 Python 友好。

我的建议是如果你想更快速地开发和构建 AI 相关产品,TensorFlow 是很好的选择。建议研究型开发者使用 PyTorch,因为它支持快速和动态的训练。

原文链接:https://builtin.com/data-science/pytorch-vs-tensorflow

本文为机器之心编译,转载请联系本公众号获得授权。游戏网

责任编辑:

相关下载

玩家评论

涉老企业扎堆上线电商渠道之争一触即发

原标题:涉老企业扎堆上线电商 渠道之争一触即发 受疫情波及而大面积业务停摆的养老企业,“不约而同”地瞄准了迅速爆发的老年群体网购需求,转战电商详情>>

阅读: 1
日期: 2020-03-13
云游戏市场之争,2023年将达25亿美元_企业

原标题:云游戏市场之争,2023年将达25亿美元 IHS Markit 基于全球16家云游戏服务的表现统计得出,2018年全球云游戏市场规模达到3.87亿美元,预计市场规详情>>

阅读: 2
日期: 2020-03-07
《魔仙记》仙皇争霸帝魂之争

仙谕天城,谁当其主?五大仙名,谁领其尊?《魔仙记》仙皇争霸,用实力成为仙谕世界的统领者!仙皇争霸活动,各仙盟进入地图“仙谕天城”,点击仙谕夺取即可占领详情>>

阅读: 8
日期: 2020-03-03
《青春2》蔡徐坤C位之争,海报故意搞事?这可不是爱奇艺第一次_蔡旭坤

原标题:《青春2》蔡徐坤C位之争,海报故意搞事?这可不是爱奇艺第一次 近日有一张海报可以说是火遍了娱乐圈,这就是爱奇艺官网在2月24日发布的《青春有详情>>

阅读: 5
日期: 2020-02-25
《醉逍遥》王印之争,热血降临!

狂饮琼浆数百盅,醉舞长剑指虚空。由绿岸发行的大型叛逆武侠网游《醉逍遥》新的战斗即将打响。至尊王印,即将开启全新争夺战,成就你的王者再临。 参详情>>

阅读: 10
日期: 2020-02-17
《醉逍遥》王印之争,热血降临!

狂饮琼浆数百盅,醉舞长剑指虚空。由绿岸发行的大型叛逆武侠网游《醉逍遥》新的战斗即将打响。至尊王印,即将开启全新争夺战,成就你的王者再临。 参与全民王印,就详情>>

阅读: 5
日期: 2020-02-17
王石:万宝之争不算难1983年赔得想自杀

原标题:王石:万宝之争不算难 1983年赔得想自杀 临近年末,一场新书发布会和一档访谈节目,让本就话题度不低的王石,再次“火”了一把。屡次登上热搜排行详情>>

阅读: 15
日期: 2019-12-27
PC数字发行之争:30年主机大战的一轮倒影_雅达利

原标题:PC数字发行之争:30年主机大战的一轮倒影 在雅达利如日中天的 1982 年,有人神秘兮兮的带着一台 ColecoVision 试作机到访任天堂。这台后日被外详情>>

阅读: 7
日期: 2019-12-24
《新笑傲江湖》首席之争活动怎么玩 首席之争活动玩法汇总

导 读 在新笑傲江湖手游中首席之争怎么玩呢?在新笑傲江湖手游中首席之争是属于PVP模式的活动玩法哦!那么感兴趣的话下面就来看一下吧! 新笑傲江湖首席之争活动内容一览 开放时详情>>

阅读: 9
日期: 2019-12-14
荣誉之争全面展开《永恒之塔》传说时代再度升级

盛趣游戏旗下MMORPG《永恒之塔》今日迎来了再次翱翔大区的全新更新。此次版本升级内容中卡塔拉姆区域全部开放!更广阔的野外战场地图“红色卡塔拉姆-南部”强势来袭详情>>

阅读: 8
日期: 2019-12-04
荣誉之争全面展开 《永恒之塔》传说时代再度升级

盛趣游戏旗下MMORPG《永恒之塔》今日迎来了再次翱翔大区的全新更新。此次版本升级内容中卡塔拉姆区域全部开放!更广阔的野外战场地图“红色卡塔拉姆-南部”强势来袭详情>>

阅读: 5
日期: 2019-12-04
倪萍首谈与周涛、董卿央视一姐之争:“这次我决定不忍了”_赵丽颖

原标题:倪萍首谈与周涛、董卿央视一姐之争:“这次我决定不忍了” 文| 罗拉 出处| 灵魂有香气的女子(ID:lixiaoyilhyxqdnz) 01 可能是年底了,积攒了一整详情>>

阅读: 10
日期: 2019-12-02
全球芯片市场上,“两强之争”已打响——

原标题:全球芯片市场上,“两强之争”已打响—— 参考消息网11月13日报道境外媒体报道称,韩国三星电子在半导体代工领域向台积电发起正面挑战。三星将详情>>

阅读: 16
日期: 2019-11-13
DNF:第一炽天使之争,旭旭宝宝制定增幅计划,年底冲击全身15!

提及炽天使这个职业,之前狂人耗费巨资,多个装备进行增幅,终于如愿以偿的破万智力。论智力破万,在全服游戏,也就只有狂人一个。然而,这让旭旭宝宝不舒服,原详情>>

阅读: 11
日期: 2019-11-09
BAT的10亿用户之争,百度搜索手握一极

原标题:BAT的10亿用户之争,百度搜索手握一极 BAT仍是手握10亿用户的一线互联网巨头。 根据QuestMobile发布的《 2019中国移动互联网秋季报告》显示:详情>>

阅读: 7
日期: 2019-11-08
徐诗霖与经纪公司之争落槌,法院:合约在其成年后不发生效力

徐诗霖与经纪公司之争落槌。 作为中国女子网坛的一枚新星,2013年在徐诗霖15岁时,其父亲作为徐诗霖的监护人与前锐(上海)商务咨询有限公司(以下简称前锐公司)签订了长达11年的《体详情>>

阅读: 8
日期: 2019-10-25
S9四分之一决赛第一日前瞻:iG与GRF的“进攻艺术”之争_Griffin

原标题:S9四分之一决赛第一日前瞻:iG与GRF的“进攻艺术”之争 2019英雄联盟全球总决赛淘汰赛阶段日渐临近,参加四分之一决赛的八支队伍将捉对厮杀,在B详情>>

阅读: 7
日期: 2019-10-24
S9四分之一决赛第一日前瞻:iG与GRF的“进攻艺术”之争

原标题:S9四分之一决赛第一日前瞻:iG与GRF的“进攻艺术”之争 2019英雄联盟全球总决赛淘汰赛阶段日渐临近,参加四分之一决赛的八支队伍将捉对厮杀,在B详情>>

阅读: 9
日期: 2019-10-24
5G手机之争雷声大雨点小,闪充大战却已进入真白热化

原标题:5G手机之争雷声大雨点小,闪充大战却已进入真白热化 2019年被称之为5G元年,整个手机市场也厉兵秣马准备迎接全新换新时代,这恐怕是既智能手机换详情>>

阅读: 17
日期: 2019-10-18
历时8年“乔丹”商标之争落幕

原标题:历时8年 “乔丹”商标之争落幕 历时七年的“乔丹”商标之争终于落下帷幕。10月16日,最高人民法院审结乔丹公司商标争议案,判决其商标并未损害详情>>

阅读: 6
日期: 2019-10-17
S9全球总决赛小组赛第三日前瞻:iG与DWG的“天才上单”之争_比赛

原标题:S9全球总决赛小组赛第三日前瞻:iG与DWG的“天才上单”之争 2019英雄联盟全球总决赛小组赛的战火已经全面燃起,16支来自各大赛区的豪强队伍将详情>>

阅读: 7
日期: 2019-10-14
LOL-S9:小组赛第二日前瞻:FNC与CG的首胜之争_Fnatic

原标题:LOL-S9:小组赛第二日前瞻:FNC与CG的首胜之争 2019英雄联盟全球总决赛小组赛的战火已经全面燃起,16支来自各大赛区的豪强队伍将迎接一段艰难又详情>>

阅读: 7
日期: 2019-10-13
LOL-S9:小组赛第二日前瞻:FNC与CG的首胜之争

原标题:LOL-S9:小组赛第二日前瞻:FNC与CG的首胜之争 2019英雄联盟全球总决赛小组赛的战火已经全面燃起,16支来自各大赛区的豪强队伍将迎接一段艰难又详情>>

阅读: 10
日期: 2019-10-13
【历史】观世音菩萨的性别之争

原标题:【历史】观世音菩萨的性别之争 在中国宗教信仰史上,最深入人心,受到最广泛敬拜的神明,无疑是观世音菩萨。她象征着无限的慈悲和博爱,是一切男女详情>>

阅读: 15
日期: 2019-09-05
《ATLAS》红宝石之争 公共资源被霸占引起民愤

  无论是什么样的游戏,都会存在普通玩家和大神级别的玩家,而以小编的眼光看来,这两种玩家的区别就是对于细节的把握不一样,也就是花的心思不同。而在最近比较火热的海盗冒险生存游戏《ATLAS》中,表详情>>

阅读: 8
日期: 2019-02-24
头腾直播之争背后 不可忽视的游戏直播版权

    近日,广州知识产权法院应腾讯公司申请向西瓜视频下达了行为保全禁令,要求西瓜视频立即停止以直播方式传播《王者荣耀》游戏内容。据悉,这是中国游戏直播行业的首个行为保全禁令。    前一日,腾讯游戏详情>>

阅读: 2
日期: 2019-02-22
LPL今日前瞻:龙凤之争 FPX冲击六连胜

  2月19日,2019LPL春季赛将进入第五周的第二个比赛日。在当天的两场比赛中,刚刚强势横扫iG的LGD将坐镇主场,迎战目前未尝一败的FPX。而新赛季表现不俗的SN,则将对上RW。  龙凤相争L详情>>

阅读: 2
日期: 2019-02-19
炉石传说冰与火之争怎么玩_炉石传说冰与火之争乱斗卡组推荐

炉石传说在本周的时候迎来了冰与火之争乱斗模式,这是一个全新的模式,不少的玩家不知道怎么玩,所以今天就跟大家讲讲炉石传说冰与火之争的相关攻略。炉石传说冰与火之争玩法介绍:炉石传说详情>>

阅读: 1
日期: 2019-01-28
战前海报:龙蛇之争 螣蛇乘雾终为土灰

1月22日LPL春季赛第二周第二天比赛,第一场比赛在SS主场进行,SS与SDG这场龙蛇大战会以强龙不压地头蛇收尾吗?第二场比赛将由RNG迎战前来北京挑战的LGD战队,AJ登场详情>>

阅读: 12
日期: 2019-01-22
帝国王位之争 8090《猎魔》帝国职位划分一览

8090《猎魔》中,精灵帝国和梦幻帝国为游戏中的两大帝国,因为历史原因,两大帝国互为敌对。玩家在达到一定等级后,要选择一方加入,并以消灭敌国势力为目标。《猎魔》中玩家在完成帝国任务、参与帝国活动等会获详情>>

阅读: 6
日期: 2019-01-22
相关单机游戏
精彩推荐
相关专题