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 从业者的行列,他们用它做很多不可思议的事情,比如寻找新的行星、探索先进的医疗手段。
然而,如此强大的工具掌握在如此少的人手中,真是可惜······不过现在,情况不同了。
可爱又迷人的角色——Keras
我们已经介绍了扎心的「仙人球」,现在来谈谈你真正想要拥抱的东西。我在工作的地方无意中听到一句话:「我想我真的很喜欢 Keras。」
Keras 是一个逐层构建模型的规范,它与多个机器学习框架一起工作(所以它不是 TF 的工具),但你可能知道从 TensorFlow 中可以访问其高级 API tf.keras。
Keras 由纯 Python 编写而成,它总是以人为本——设计灵活、简单易学。
鱼和熊掌能兼得吗?
为什么我们必须在 Keras 的简单操作和传统 TensorFlow 的强大性能之间做出抉择?怎么才能兼得呢?
鱼和熊掌可以兼得——这就是 TensorFlow 2.0。
易用性革命
展望未来,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),获取教程、示例、文档和工具,来帮助入门……或者直接使用以下命令:
pip install tensorflow == 2.0.0-alpha0
详细说明参见:http://bit.ly/tfalpha。
本文转载自 机器之心,原文地址
Comments