深度学习框架大战正在进行,谁将夺取“深度学习工业标准”的荣耀?

随着深度学习研究热潮的持续发酵,各种开源 深度学习框架 层出不穷,其中包括:Caffe、CNTK、MXNet、Neon、TensorFlow、Theano 和 Torch (著名开源深度学习框架 Keras 相当于是 TensorFlow 和 Theano 的简化接口,这里就不并列了)。

在这些深度学习框架中,我个人是支持 TensorFlow 的。以前我的观点不是这样,当时的我觉得 TensorFlow 没有什么厉害的。TensorFlow 刚出来的时候,我还和 Mentor 思远大大一顿吐槽。不过我最近转变观点,觉得 TensorFlow 比较牛逼。

TensorFlow 和其他深度学习框架的对比

在详细地论证我的观点前,我先整理下 TensorFlow 和其他深度学习框架的对比。

在分布式计算方面,TensorFlow 最终还是赶上了。2016年2月27日,Google 终于公布了 TensorFlow的 分布式运行方案。对于大规模深度学习来说,巨大的数据规模使得单机很难 Hold 得住了。这时需要分布式计算使得多台服务器协同工作共同训练一个模型出来。Google 开源 TensorFlow 时只有单机版本,是当时人们吐槽的第一槽点。目前分布式深度学习框架有 CNTK、MXNet 和 TensorFlow。分布式运行方案使得 TensorFlow 挤身为数不多的分布式深度学习框架俱乐部。

在性能方面,TensorFlow 的速度是比较慢的。去年 TensorFlow 刚刚公布的,人们第一吐槽只有单机版本,第二吐槽没有官方和其他深度学习框架的对比结果。一些研究者们做了一些对比之后发现,TensorFlow 真的不快,Google 不发布官方和其他深度学习框架的对比结果是正确的策略。最近zer0n和bamos在GitHub上发表的一篇文章(译文在此)在速度方面给 TensorFlow 打了3星,另一个3星的框架是公认很慢的Theano。zer0n和bamos指出 TensorFlow 仅使用了cuDNN v2,并指出即使 Torch 也只使用 cuDNN v2,也比 TensorFlow 快。微软在 CNTK 的项目主页默默地挂出了此图(PS: 当时TensorFlow 还不能分布式计算)。在此图中,TensorFlow 的速度仅仅比 Theano 快一点。

在关注度方面,我们发现 TensorFlow 远远超过其他深度学习框架。按照北京时间 2016 年 3 月 6 日的数据,TensorFlow 在 GitHub 上 Stars 数将近 20000, Forks 数也超过了 6500。下图是 TensorFlow 和其他深度学习开源工具的 Stars 和 Forks,可以看出差距非常明显。再联想到 TensorFlow 去年才开源,就能体会 TensorFlow 人气之高了。

到生产一线去

我为什么还看好 TensorFlow 的未来呢?因为我个人认为 TensorFlow 会是直接面向生产环境的深度学习平台。我做出这个判断基于三个理由。

第一个理由是 TensorFlow Serving。2016年2月,TensorFlow 取得了两个重要的进展。一个是TensorFlow的分布式运行方案。这个在上节已经提到过了。另一个是TensorFlow Serving。Google 在16年2月17日开源了 TensorFlow Serving,TensorFlow Serving 可以将深度学习模型变成对外提供的服务。现在用深度学习模型对外提供服务的方案有以下几步。

1.工程师们得训练模型。工程师按照自己对数据的理解,选择合适的深度学习框架将模型训练处理。

2.工程师们将训练好的模型导出。怎么让用户也能享受这个已经导出模型呢?总不能将模型远程给人家吧。因此我们有了第三步。

3.工程师选择一个合适的服务器框架,编写代码导入模型并建立对外服务。

有了 TensorFlow 和 TensorFlow Serving, 我们可以用 TensorFlow 训练和导出模型,然后把模型导入 TensorFlow Serving。TensorFlow Serving 就能对外提供预测服务了。相当于 TensorFlow 系列把整个用深度学习模型对外提供服务的方案全包了。Google软件工程师Noah Fiedel的说法,“TensorFlow Serving是一个高性能、开源的机器学习服务系统,为生产环境及优化TensorFlow而设计。它更适合运行多个大规模模型,并支持模型生命周期管理、多种算法实验及有效地利用GPU资源。TensorFlow Serving能够让训练好的模型更快、更易于投入生产环境使用”。

TensorFlow Serving 的出现使得 TensorFlow 具有深度学习平台的雏形。一个深度学习框架也许只需要考虑如何把模型训练好。而一个生产级别的深度学习平台除了训练模型(Model Training)外还涉及很多相关的数据处理周期,例如Data ingress, Filtering (Sampling), Cleaning,Egress,Storage,Serving等等。

第二个理由是 TensorBoard。TensorBoard 是一款可视化工具,目的是为了方便 TensorFlow 程序的理解、调试与优化。工程师们可以用 TensorBoard 来展现你的 TensorFlow 图像,绘制图像生成的定量指标图以及附加数据。下图是一个展示模型结构的示例,大家可以感受下。

由于生产环境面对很多水平不一的工程师们,在生产环境中使用的开源项目提供一个易用的接口就显得很重要了。TensorFlow 除了提供Python/C++两种编程接口之外,还提供了图形化的可视化工具 TensorBoard 。有了 TensorBoard, 你就能直观地了解神经网络结构!易用性是生产级别的深度学习平台的重要要求。TensorFlow Board 体现了 TensorFlow 会朝着这个方向做更多的工作。

第三个理由是 TensorFlow 的异构性。简单地说,异构性是指 TensorFlow 能够在不同类型设备构成的网络中进行训练和预测。这也就是媒体们说的,有了 TensorFlow , 你甚至可以用手机训练深度学习模型。实际情况是没有谁真的用手机训练深度学习模型。异构性的目的是应付复杂的生产环境。一家公司不管大还是小集群,设备可能有不同来源。有些是之前买的,有些是最近买的,还有些可能是从隔壁部门借的,因此需要深度学习框架能够在这些不同类型组成的异构网络中训练和使用模型。TensorFlow 的异构性使得它能够应付复杂的实际生产环境。

上述三点理由都是指向 TensorFlow 是直接面向生产环境的。一旦 TensorFlow 全面地进入不同机构的生产环境,这些机构会变成 TensorFlow 发挥影响力的节点,将极大地增强 TensorFlow 的影响力。这体现在三点上:1)著名机构使用 TensorFlow 本身就会带来的影响力;2)进入一家机构的算法工程师,不管是通过职前自学还是公司培训,最终都学会 TensorFlow 。就像我师兄张星星说的,“不少工程师希望去 Google 工作吧,那他们去工作前一定会学学 TensorFlow 的”;3)从这家公司离职人又将使用方法经验带到别的机构。相反地,如果一款深度学习框架没有进入生产环境,只是作为个人调研和实验的工具,工程师就没有直接理由了解和使用它了。各种深度学习框架中,TensorFlow 的官方最具有面向生产环境的意识。这可能和 TensorFlow 曾经或者现在在 Google 内部生产环境中实际使用有关。

当然 TensorFlow 也有被扯后腿的地方。TensorFlow的性能和 CNTK、Neon 和 Torch等工具相比还有差距。如果 TensorFlow 的性能没有得到大幅度地改善,会对工业界的吸引力会大打折扣,这对 TensorFlow 普及会产生很大的伤害。除了这个大缺点,TensorFlow 还有一个小缺点: TensorFlow 不能部署在 Windows 操作系统上。不过我不认为这是什么缺点。哈哈,准备去微软的苗苗、小狮子和奔奔不准打我。

深度学习框架大战正在进行,谁将夺取“深度学习工业标准”的荣耀,我们拭目以待。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据科学与人工智能

GitHub 上 57 款最流行的开源深度学习项目

本文整理了 GitHub 上最流行的 57 款深度学习项目(按 stars 排名)。最后更新:2016.08.09 1.TensorFlow 使用数据流图计算可...

3175
来自专栏人工智能LeadAI

通过深度学习实现安全帽佩戴的检测

前一段时间做企业的智能安全项目,我们在面对一些问题时,大胆采用深度学习的方法,解决传统算法和统计学算法不好实现的问题,今天就和大家分享一下,如何解决通过视频监控...

6636
来自专栏人工智能头条

最新Github上各DL框架Star数量大PK | 附各框架性能对比分析

703
来自专栏数据科学与人工智能

【大规模机器学习】大规模机器学习流程的构建与部署

大规模机器学习流程的构建与部署 现在有许多的机器学习算法实现是可以扩展到大数据集上的(其中包括矩阵分解、SVM、逻辑回归、LASSO 等等)。实际上,机器学习专...

27710
来自专栏专知

2018年Google TensorFlow开发者峰会亮点总结

本文由TensorFlow的产品经理Sandeep Gupta代表TensorFlow团队发布。 原文:https://medium.com/tensorflo...

36711
来自专栏新智元

【干货】7月机器学习Top 10,GitHub平均1041星!

【新智元导读】本月的最热机器学习项目出来了!Mybridge对过去一个月的近250个机器学习开源项目进行了排名,甄选出GitHub星数最多的10大热门项目。开源...

391
来自专栏新智元

深度学习框架大战:谁将夺取“深度学习工业标准”荣耀?

随着深度学习研究热潮的持续发酵,各种开源深度学习框架层出不穷,其中包括:Caffe、CNTK、MXNet、Neon、TensorFlow、Theano 和 To...

3596
来自专栏数说工作室

懂点硬件 | AlphaGo、图像搜索、街景......背后都有它的影子:TPU

去年,谷歌曾在I/O开发者大会上透露了一款名为TPU的芯片,全称Tensor Processing Unit 张量处理器,是不是有点眼熟?(谷歌推出的机器学习框...

2695
来自专栏新智元

陈天奇团队新研究:自动优化深度学习工作负载

21210
来自专栏ATYUN订阅号

【工具】学AI必须接触的12样工具,你知道吗?

随着近年来科技的发展,人工智能的利用率也是越来越高,我们需要随时了解人工智能的哪些工具、库、平台,以及提供的功能,哪些更加适合你。下面介绍的一些AI工具、库和平...

3565

扫码关注云+社区