转载自:Tensoflow,未经允许不得二次转载
2018 年 11 月,TensorFlow 迎来了它的 3 岁生日,我们回顾了几年来它增加的功能,进而对另一个重要里程碑 TensorFlow 2.0 感到兴奋 !
TensorFlow 2.0 将专注于 简单性 和 易用性,具有以下更新:
在过去的几年里,我们为 TensorFlow 添加了许多组件。在 TensorFlow 2.0 中,它们将被打包成一个全面的平台,支持从训练到部署的机器学习工作流程。让我们使用如下所示的简化概念图来了解 TensorFlow 2.0 的新架构:
注:上图的训练部分虽然侧重于 Python API,但 TensorFlow.js 也支持训练模型。
也支持其他语言,包括 Swift,R 和 Julia
简单的模型构建
在最近的 文章 中,我们宣布 Keras API 将成为 TensorFlow 中构建和训练模型的核心高级 API。Keras API 使得使用 TensorFlow 开启项目变得简单。重要的是,Keras 提供了几个模型构建 API ( Sequential, Functional, 和 Subclassing ),因此您可以选择适合的抽象级别。TensorFlow 的实现包含多项增强功能,包括即时迭代和直观调试,以及 tf.data,用于构建可扩展的输入管道。
下面是一个工作流程示例 ( 在接下来的几个月里,我们将更新下面所述内容的指南 ):
想要了解 TensorFlow 指南详细信息,请参阅:
https://tensorflow.google.cn/guide/?hl=zh-CN
在任何平台上的生产环境中进行稳健的模型部署
TensorFlow 始终为生产提供了直接途径。无论是在服务器、边缘设备或者 web上,无论您使用哪种语言或平台,TensorFlow 都可以让您轻松地训练和部署模型。在 TensorFlow 2.0 中,我们通过标准化交换格式和调整 API 来提高平台和组件之间的兼容性和一致性。
一旦您训练并保存了模型,就可以直接在应用程序中执行它,或者使用以下部署库之一为它提供服务:
TensorFlow 还支持其他语言 ( 一些由更广泛的社区维护 ),包括 C, Java, Go, C#, Rust, Julia, R 等。
为研究提供强大的实验工具
TensorFlow 使从概念到代码、从模型到发布的新思想变得容易。TensorFlow 2.0 集成了许多功能,可以在不牺牲速度或性能的情况下定义和训练最新模型:
TensorFlow 2.0 带来了一些新功能,允许研究人员和高级用户使用丰富的扩展 ( 如 Ragged Tensors, TensorFlow Probability, Tensor2Tensor 等) 进行实验。
除了这些功能外,TensorFlow 提供 eager excution,便于原型制作和调试,Distribution Strategy API 和 AutoGraph进行规模化训练, 以及对 TPU 的支持, 使 TensorFlow 2.0 成为一个易于使用、可定制和高度可扩展的平台,用于进行最先进的机器学习研究并将研究转化为生产流水线。
TensorFlow 1.x 和 2.0 的区别
自从我们最初开源 TensorFlow 以来,已经有了许多版本和 API 迭代。随着机器学习的快速发展,该平台得到了极大的发展,现在支持具有不同需求的不同用户组合。使用 TensorFlow 2.0,我们有机会清理和模块化基于语义版本控制的平台。
以下是一些较大的变化:
此外,tf_contrib 将从 TensorFlow 核心存储库和构建流程中删除。TensorFlow 的 contrib 模块已经超出了单个存储库所能维护和支持的范围。较大的项目最好单独维护,而较小的扩展将逐步过渡到核心 TensorFlow 代码。一个特别兴趣小组 ( SIG ) 已经成立,以维持和进一步发展未来一些更重要的 contrib 项目。
如果您有兴趣贡献,请回复此贴:
https://github.com/tensorflow/community/pull/37
兼容性和连续性
为了简化向 TensorFlow 2.0 的过渡,将有一个转换工具,它可以更新 TensorFlow 1.x Python 代码以使用 TensorFlow 2.0 兼容 API,或者标记代码无法自动转换的情况。
并非所有更改都可以完全自动完成。例如,某些已弃用的 API 没有直接等效项。这就是我们引入 tensorflow.compat.v1 兼容性模块的原因,该模块保留了对完整 TensorFlow 1.x API(不包括 tf.contrib)的支持。 该模块将在 TensorFlow 2.x 的生命周期内维护,并允许使用 TensorFlow 1.x 编写的代码保持功能。
此外,SavedModels 或存储的 GraphDefs 将向后兼容。 使用 1.x 保存的 SavedModels 将继续在 2.x 中加载和执行。 但是,2.0 中的更改将意味着原始检查点中的变量名称可能会更改,因此使用 2.0 之前的检查点而具有已转换为 2.0 的代码时可能无法保证正常工作。 有关详细信息,请参阅 TensorFlow 2.0 指南:
https://github.com/tensorflow/docs/blob/master/site/en/r2/guide/effective_tf2.md
我们相信 TensorFlow 2.0 将为应用开发带来巨大的益处,我们已投入大量精力使转换变得尽可能简单。但是,我们也认识到迁过渡当前的线程需要时间,我们非常关心社区目前对学习和使用 TensorFlow 的投资。 我们将在最后的 1.x 版本中提供 12 个月的安全补丁,以便为现有用户提供充足的时间进行过渡并获得 TensorFlow 2.0 的所有优势。
TensorFlow 2.0 的时间表
TensorFlow 2.0 预览版将于今年年初发布。
何必要等? 您已经可以通过使用 tf.keras 和 eager execution,预打包模型和部署库来开发 TensorFlow 2.0 了。Distribution Strategy API 目前已部分可用。
我们对 TensorFlow 2.0 以及即将到来的变化感到非常兴奋。TensorFlow 已经从一个用于深度学习的软件库成长为一个适用于所有机器学习类型的完整生态系统。TensorFlow 2.0 将简单易用,适用于所有平台上的所有用户。
欢迎加入 TensorFlow 社区,它不仅帮您了解最新内容,还帮助每个人都可以使用机器学习 !