本文转载自机器之心
TensorFlow 2.0 带来了大量改变。谷歌工程师 Cassie Kozyrkov 表示:之前的 TensorFlow 已死,而新版 TensorFlow 使它获得重生。
如果你是 AI 铁粉,但恰好没看到这个重大新闻,这可能就像在地震来临之际打了个盹。一切都将改变。
这是什么?TensorFlow 的 logo?还是回答真/假判断题的字母?
去年我写了 9 件关于 TensorFlow 你需要了解的事。但是你需要明确知道的一件事是:TensorFlow 2.0 到来了!
一场新革命!欢迎来到 TensorFlow 2.0。
这是一次颠覆性的改造。TensorFlow 2.0 的到来将对每个行业造成巨大的连锁反应,等着瞧吧。如果你是 2019 年刚开始用 TF 的新手,那你就特别幸运了,因为你选择了最好的时间进入 AI 的世界(如果你的旧教程中有「session」一词,你可能想从头开始)。
简而言之:TensorFlow 已经覆盖了 Keras!请站稳、扶好。
扎心的体验
我对很多人热爱 TensorFlow1.x 表示怀疑。这像是人工智能的工业车床,它对用户友好。但充其量,你可能只因为它能完成令人难以置信的 AI 任务而对它心怀感激而已。
如果你说 TensorFlow 1.x 很容易上手,那你可能会遭到别人的白眼。它陡峭的学习曲线使普通用户望而却步,而掌握了它就像你在失去脚趾的情况下登顶了珠峰。有趣吗?不。
你不是一个人——每个人对 TensorFlow 1.x 教程的感觉都是这样的……
TensorFlow 的核心优势在于性能。它的设计是为了将模型能从研究迁移到大规模生产中,但是 TF 1.x 让你心力交瘁。坚持下去,你就能够加入 ML 从业者的行列,他们用它做很多不可思议的事情,比如寻找新的行星、探索先进的医疗手段。
然而,如此强大的工具掌握在如此少的人手中,真是可惜······不过现在,情况不同了。
不要担心张量(tensor)是什么。以前它被称作(广义)矩阵。TensorFlow 这个名称是对 TF 非常擅长执行涉及多维数组(呃,矩阵)的分布式计算这一事实的肯定,这在 AI 领域是经常出现的。(图源:http://karlstratos.com/drawings/drawings.html)
可爱又迷人的角色——Keras
我们已经介绍了扎心的「仙人球」,现在来谈谈你真正想要拥抱的东西。我在工作的地方无意中听到一句话:「我想我真的很喜欢 Keras。」
Keras 是一个逐层构建模型的规范,它与多个机器学习框架一起工作(所以它不是 TF 的工具),但你可能知道从 TensorFlow 中可以访问其高级 API tf.keras。
Keras 由纯 Python 编写而成,它总是以人为本——设计灵活、简单易学。
鱼和熊掌能兼得吗?
为什么我们必须在 Keras 的简单操作和传统 TensorFlow 的强大性能之间做出抉择?怎么才能兼得呢?
鱼和熊掌可以兼得——这就是 TensorFlow 2.0。
图中是 TensorFlow 2.0。网址:https://www.tensorflow.org/overview,你可以在该网页随意尝试这些橙色按钮。
「我们认为你不需要在简单的 API 和可扩展的 API 之间做出选择。我们想要一个更高级的 API,带你直接从 MNIST 到天上繁星。」——Karmel Allison,Google TensorFlow 工程负责人
易用性革命
展望未来,Keras 将成为 TensorFlow 的高级 API,它已经经过了扩展,因此你可以直接从 tf.keras 使用 TensorFlow 的所有高级功能。
所有 TensorFlow 都具备 Keras 的易用性,可在各种规模和各种硬件上使用。
在新版本中,所有你最讨厌的 TensorFlow1.x 特性都没有了。只是为了将两个数字加在一起,就必须采用「暗黑」操作?再见。TensorFlow Sessions?再见。用一百万种方法做同样的事情?再见。切换硬件或规模就要重写代码?再见。要写一大堆的样板文件?再见。可怕的无法执行的错误信息?再见。陡峭的学习曲线?再见。
TensorFlow 已成为过去时,TensorFlow 2.0 万岁!
你觉得会有大陷阱是吗?性能会变得糟糕?再猜!我们不会放弃性能。
TensorFlow 现在很可爱,这是一个游戏规则改变者,因为它意味着我们这个时代最强大的工具之一撤掉了它的高墙。各行各业的技术爱好者都有了参与其中的权利,因为新版本的开放让研究人员不再头疼,也让那些使用以前版本而遭受「痛苦经历」的人能再度积极参与其中。
我们这个时代最强大的工具之一撤掉了它的高墙。
TensorFlow 2.0 欢迎所有人。
令人满意的 Eager
在 TensorFlow 2.0 中,eager execution 是默认模式。甚至在 eager context 中,你也可以利用图,使调试和原型设计变得简单,而 TensorFlow 运行时则负责底层性能和扩展。
TensorFlow 1.x(声明式编程)中的纠缠图让许多人摸不着头脑,但现在,eager execution(命令式编程)让大家摆脱了这个噩梦。如果你之前没学习过这部分,那就更好了。TF 2.0 对每个人来说都是一个新的开始。
简单到一个就足够
许多 API 在 TensorFlow Keras 下得到了整合,所以现在你更容易知道什么时候应该使用什么。例如,现在只需要使用一组优化器和一组度量标准。需要设置多少层?你猜到了!一个!这就是 Keras 的风格。
事实上,整个工具生态系统得到了一次大扫除,从数据处理流程到简单的模型导出,再到 TensorBoard 与 Keras 的集成,现在只要一行即可实现!
还有一些很棒的工具可以切换和优化分布策略,从而获得惊人的扩展效率,同时又不会失去 Keras 本身的便利性。
这些分布策略都很棒,不是吗?
问题
如果性能不是问题,那一定还有别的陷阱对吧?
事实上,到目前为止,问题就是用户等待了太久。TensorFlow 在开发一个友好的版本时,要求用户有相当多的耐心。这不是故意刁难用户。开发深度学习工具是一个新的领域,我们一直在沿着这个方向前进。弯路是不可避免的,但我们在此过程中学到了很多东西。
这不是故意刁难用户。深度学习是一个未知的领域。
TensorFlow 社区投入了大量的精力来创造这份奇迹,然后再次付出更多的努力打磨这颗最好的宝石,同时打磨掉不好的设计。这个计划不会强迫你永远使用未磨好的「原石」,但也许你已经习惯了这种不舒服,你没有意识到这是暂时的。感谢你的耐心等待!
我们不会放弃性能!
回报就是你所欣赏的关于 TensorFlow 1.x 的一切都还在,它们在一致的 API 下,且删除了大量的重复功能,因此使用起来更清晰。即使是错误信息,也清理得简明扼要、易于理解、易于操作。它的性能仍然强大!
最重要的事情
hater 可能会说 v2.0 中的大部分特性都可以在 v1.x 中拼凑出来,只要你搜索得足够多,所以有什么可大惊小怪的呢?好吧,不是每个人都想花费时间在沙里淘金。改造和清理工作值得大家的掌声。但这不是最重要的事情。
不容错过的一点是:TensorFlow 刚刚宣布了对易用性的关注,这一点不容妥协。
这是人工智能民主化进程中前所未有的一步!
AI 可自动执行任务,你无需再想相关的说明。它可以自动化描述不出的内容。民主化意味着大规模的人工智能将不再是少数精英的专属了。
现在任何人都可以引舵!
想象一下未来「我知道如何用 Python 开发东西」和「我知道如何用 AI 开发东西」同样司空见惯,这几乎可以用「颠覆」二字来形容。
迁移
我们知道升级到新版本是一项艰苦的工作,尤其是当这些变化如此巨大时。如果你准备将代码库迁移至 2.0,那么你并不孤单,Google 将执行同样的操作,谷歌拥有世界上最大的代码库。随着我们的深入,我们将分享迁移指南来帮助大家。
我们提供了很好的工具来简化迁移。
如果你依赖于特定的功能,那么除了 contrib 其他都没什么问题,所有 TF 1.x 的功能都将存在于 compat.v1 兼容模块中。我们还提供一个脚本(http://bit.ly/tfupgrade),它会自动更新代码,使其在 TensorFlow 2.0 上运行。更多信息参见以下视频:
如果你希望深入了解 TF 2.0 和如何处理代码片段,那么这个视频是一个很好的资源。
对小白来说
TF 2.0 是初学者的天堂,所以对于那些一直期待看着菜鸟们遭遇过来人痛苦的人来说,这不会发生了。
如果你希望使用 TensorFlow 来欺负新员工,你可能需要「另辟蹊径」了。
如果你是 TensorFlow 初学者,你可能会在 AI 派对上迟到,但是很多人都会迟到。现在就是入场的最佳时间!
待在场外可能是明智的选择,因为现在才是入场的最佳时机。2019 年 3 月,TensorFlow 2.0 Alpha 版本已经可用,所以现在学习它可以让你及时准备好迎接下个季度发布的完整版本。
TF 2.0 是初学者的天堂。
随着 TF 2.0 的大量变化,你不会成为当初想象的那种初学者。比赛场地变得平坦,比赛变得更加轻松,而且有一个座位专门为你而留。欢迎!我很高兴你终于到了这里,我希望你和我一样对这个新世界感到兴奋。
加入吧!
查看重新设计的 tensorflow.org(http://bit.ly/tfdotorg),获取教程、示例、文档和工具,来帮助入门……或者直接使用以下命令:
代码语言:javascript复制pip install tensorflow == 2.0.0-alpha0
详细说明参见:http://bit.ly/tfalpha。
原文链接:https://hackernoon.com/tensorflow-is-dead-long-live-tensorflow-49d3e975cf04?sk=37e6842c552284444f12c71b871d3640