TensorFlow的新生!

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),获取教程、示例、文档和工具,来帮助入门……或者直接使用以下命令:

pip install tensorflow == 2.0.0-alpha0

详细说明参见:http://bit.ly/tfalpha。

原文链接:https://hackernoon.com/tensorflow-is-dead-long-live-tensorflow-49d3e975cf04?sk=37e6842c552284444f12c71b871d3640

工程深度学习框架TensorFlow
6
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

TensorBoard技术

一个信息中心,用于显示在执行一个或多个 TensorFlow 程序期间保存的摘要信息。

学习曲线技术

在机器学习领域,学习曲线通常是表现学习准确率随着训练次数/时长/数据量的增长而变化的曲线

TensorFlow技术

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

张量技术

张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 维空间内,有 个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。称为该张量的秩或阶(与矩阵的秩和阶均无关系)。 在数学里,张量是一种几何实体,或者说广义上的“数量”。张量概念包括标量、矢量和线性算子。张量可以用坐标系统来表达,记作标量的数组,但它是定义为“不依赖于参照系的选择的”。张量在物理和工程学中很重要。例如在扩散张量成像中,表达器官对于水的在各个方向的微分透性的张量可以用来产生大脑的扫描图。工程上最重要的例子可能就是应力张量和应变张量了,它们都是二阶张量,对于一般线性材料他们之间的关系由一个四阶弹性张量来决定。

分布式计算技术技术

在计算机科学中,分布式计算,又译为分散式運算。这个研究领域,主要研究分布式系统如何进行计算。分布式系统是一组电脑,通过网络相互链接传递消息与通信后并协调它们的行为而形成的系统。组件之间彼此进行交互以实现一个共同的目标。

优化器技术

优化器基类提供了计算梯度loss的方法,并可以将梯度应用于变量。优化器里包含了实现了经典的优化算法,如梯度下降和Adagrad。 优化器是提供了一个可以使用各种优化算法的接口,可以让用户直接调用一些经典的优化算法,如梯度下降法等等。优化器(optimizers)类的基类。这个类定义了在训练模型的时候添加一个操作的API。用户基本上不会直接使用这个类,但是你会用到他的子类比如GradientDescentOptimizer, AdagradOptimizer, MomentumOptimizer(tensorflow下的优化器包)等等这些算法。

推荐文章
暂无评论
暂无评论~