重磅:TensorFlow 2.0即将发布,所有tf.contrib将被弃用

重磅:TensorFlow 2.0即将发布,所有tf.contrib将被弃用

作者 | 阿司匹林

出品 | AI科技大本营(公众号ID:rgznai100)

上周,谷歌刚刚发布了 TensorFlow 1.10.0 版本(详见《TensorFlow 版本 1.10.0 发布》),如今,TensorFlow 的 2.0 版本又将来临。

谷歌开源战略师 Edd Wilder-James 最新公开的一封邮件显示,TensorFlow 2.0 预览版将在今年晚些时候正式发布,并称其是一个重大的里程碑。

一旦最终版本的 TensorFlow 2.0 发布,预计 TensorFlow 1.x 将不会再有任何功能更新,但 TensorFlow 团队表示将继续为 TensorFlow 1.x 版本发布一年的安全补丁。

重磅:TensorFlow 2.0即将发布,所有tf.contrib将被弃用

据悉,未来 TensorFlow 将会把重点放在易用性上,而 Eager Execution 将会是 TensorFlow 2.0 的核心功能。

(编者注:“Eager Execution”是一个命令式、由运行定义的接口,一旦从 Python 被调用可立即执行操作,这使得 TensorFlow 的入门变得更简单,也使得研发工作变得更直观。)

此外,TensorFlow 团队表示,未来所有的 tf.contrib 都会被弃用,对于每个 contrib 模块,要么 a)将项目集成到 TensorFlow 中;b)将其移至单独的存储库;c)完全将其移除。从今天将开始,TensorFlow 将停止添加新的 tf.contrib 项目。

▌TensorFlow 2.0 规划

以下是邮件内容,AI科技大本营翻译:

为了适应这些快速变化,我们已经开始研究 TensorFlow 的下一个重大版本。TensorFlow 2.0 将是一个重要的里程碑,我们将把重点放在易用性上。大家可以期待 TensorFlow 2.0 的以下功能:

  • Eager Execution 将是 TensorFlow 2.0 的核心功能。它将用户对编程模型的期望与TensorFlow 实践更好地结合起来,使得 TensorFlow 更容易学习和应用。

  • 支持更多的平台和语言,并通过交换格式的标准化和 API 的对齐来改善这些组件之间的兼容性和对等性。

  • 我们将删除过时的 API 并减少重复的数量,避免给用户带来混乱。

我们计划在今年晚些时候发布 TensorFlow 2.0 的预览版。

2.0 版本的设计流程

近期,我们将举行一系列包含预先规划好的改变在内的公共设计评审。我们将在此过程中阐明 TensorFlow 2.0 一部分的新功能,并允许社区提出更改和发表意见。如果您希望查看有关流程的评论和更新公告,请加入[email protected]。我们希望在今年晚些时候发布预览版后收集用户的反馈。

兼容性和连续性

TensorFlow 2.0 给了我们一个纠正错误并进行改进的机会,这些改进在语义化版本(semantic versioning)下是禁止的。

为了让大家更容易地向新版本过渡,我们将创建一个转换工具,用于更新 Python 代码以使用与 TensorFlow 2.0 兼容的 API,或者在无法自动进行此类转换的情况下发出警告。

并非所有更改都可以完全自动完成。例如,我们将弃用某些 API,其中一些 API 没有直接对等的替换物。对于这种情况,我们将提供兼容模块(tensorflow.compat.v1),它包含完整的 TensorFlow 1.x API,而且将在 TensorFlow 2.x 的生命周期内一直保留。

一旦最终版本的 TensorFlow 2.0 发布,我们预计 TensorFlow 1.x 不会再有任何的功能更新,但我们将继续为 TensorFlow 1.x 版本发布一年的安全补丁。

磁盘兼容性

我们不打算对 SavedModels 或存储的 GraphDef 进行重大更改(即,我们计划在 2.0 版本中包含所有当前内核)。但是,2.0 版本中的更改将意味着raw checkpoint 中的变量名称可能必须在与新模型兼容之前进行转换。

tf.contrib

TensorFlow 的 contrib 模块已经超越了单个存储库中可以维护和支持的模块。较大的项目最好分开维护,我们将在 TensorFlow 的主代码里添加一些规模较小的扩展。因此,作为发布 TensorFlow 2.0 的一部分,我们将停止分发 tf.contrib。我们将在未来几个月与 contrib 模块的所有者合作制定详细的迁移计划,包括如何在我们的社区页面和文档中宣传您的 TensorFlow 扩展。

对于每个 contrib 模块,我们要么 a)将项目集成到 TensorFlow 中; b)将其移至单独的存储库;c)完全将其移除。这意味着所有的 tf.contrib 都会被弃用,我们将从今天将开始停止添加新的 tf.contrib 项目。我们正在寻找目前在 tf.contrib 的许多项目的所有者/维护者,如果您有兴趣,请联系我们。

下一步计划

有关TensorFlow 2.0 的更多问题,请发送电子邮件至[email protected]与我们联系。如需及时了解 2.0 版本的详细开发信息,请订阅[email protected]

▌Facebook、微软等联手对抗谷歌

维基百科的资料显示,TensorFlow 最初由谷歌大脑团队开发,于2015 年 11 月 9 日在 Apache 2.0 开源许可证下发布,1.0.0 版本发布于 2017 年 2 月 11 日,目前已经更新到 1.10.0 版本。

如今,TensorFlow 已经成为开发者社区最流行的机器学习框架。

今年 3 月,Keras 作者 François Chollet 使用 Google Search Index 展示了过去三个月 ArXiv 上提到的深度学习框架排行,其中 TensorFlow 排名第一,Keras 排名第二,而且两者差距明显。

重磅:TensorFlow 2.0即将发布,所有tf.contrib将被弃用

同月,李飞飞高徒 Andrej Karpathy 也抛出数据,过去一个月里各个框架在论文中被提到(单次计算)的比例分别是:TensorFlow 14.3%,PyTorch 4.7%,Keras 4.0%,Caffe 3.8%,Theano 2.3%,Torch 1.5%,其他均少于 1%。

就在上月,深度学习研究员 Mahmoud Badry 又根据 GitHub 上的 Star 数量做了一个了深度学习项目排行榜。其中 TensorFlow 稳居榜首,Star 的数量超过 10 万,是二名 Keras 的 3 倍之多。

重磅:TensorFlow 2.0即将发布,所有tf.contrib将被弃用

可以看出,虽然其他的框架也在快速进步,但谷歌的 TensorFlow 目前仍占据绝对的领先地位

为了对抗谷歌的 TensorFlow,去年 9 月,FaceBook 携手微软发布了一个全新的项目——ONNX,可使模型在不同框架之间进行转移,欲借此打造一个开放的深度学习开发工具生态系统。目前已经有亚马逊、英特尔、百度等多家科技巨头加入。

重磅:TensorFlow 2.0即将发布,所有tf.contrib将被弃用

有分析认为,谷歌暂时不会加入这个联盟,而是会打造自己的独立生态。如今,TensorFlow 2.0 即将发布,而谷歌的 Keras 也颇受欢迎,可以预见,谷歌在这一领域的领先地位短期内不会被动摇。

相关推荐