TensorFlow 2.0 安装指南:https://www.tensorflow.org/install
TensorFlow 2.0 的发布得益于开发者社区的推动,他们想要拥有一个灵活且强大的易用平台,并且希望 TensorFlow 支持部署到任何平台。因此,TensorFlow 2.0 为开发者、企业和研究者提供了一个全面的工具生态系统,为他们推动机器学习领域(ML)的 SOTA 进展以及构建可扩展 ML 赋能的应用提供便利。
视频:TensorFlow2.0正式版发布。
使用 TensorFlow 2.0 进行模型构建
TensorFlow 2.0 使得 ML 应用的开发更加方便。借助于高度集成的 Keras、默认的 Eager Execution(一种命令式编程环境,可立即评估操作,无需构建图)以及 Pythonic 功能执行,TensorFlow 2.0 使得 Python 开发者能够尽可能地熟悉开发应用的经验。针对那些想要突破 ML 界限的研究者,谷歌在 TensorFlow 的低级 API 上投入了大量精力:现在可以导出内部使用的所有 ops,并提供关于变量和检查点等重要概念的可继承界面(inheritable interface)。
TensorFlow 2.0 在 GPU 上有很多性能改进。通过几行代码,并利用 Volta 和图灵 GPU 上的混合精度,TensorFlow 2.0 的训练性能最高提升 3 倍。TensorFlow 2.0 高度集成 TensorRT,并在谷歌云的英伟达 T4 云 GPU 的推理过程中通过改进的 API 实现更好的使用性和高性能。
TensorFlow 中构建模型至关重要的一点是对训练和验证数据的有效访问。因此,谷歌推出了 TensorFlow Datasets,从而为包含图像、文本、视频等各类数据的众多数据集提供一个标准访问界面。
TensorFlow Datasets 地址:https://www.tensorflow.org/guide/data
TensorFlow 2.0 虽然依然保留了传统的基于会话的编程模型,谷歌建议用户使用具有 Eager Execution 的常规 Python 开发。tf.function 装饰器可用于将代码转化为图,从而可以实现远程执行、序列化和性能优化。这得益于 Autograph 的补充,它可以将常规的 Python 控制流直接转化为 TensorFlow 控制流。
Autograph 地址:https://www.tensorflow.org/guide/function
当然,为了消除用户对于从 1.x 迁移到 2.0 版本的顾虑,谷歌推出了一份迁移指南。2.0 版本同时也包含了自动转换脚本,帮助用户进行迁移。
指南地址:https://www.tensorflow.org/guide/migrate
谷歌表示,在 TensorFlow2.0 的开发中,开发团队和其他合作伙伴进行广泛的沟通。例如,TensorFlow2.0 帮助谷歌新闻部门部署了一个 BERT 模型,显著减少了内存占用。
同时,对于非 Python 语言的开发者而言,TensorFlow2.0 也提供了 TensorFlow.js (https://www.tensorflow.org/js),官方表示 Swift 语言的版本也在开发中。
为了方便初学者和开发者进行学习,官方在 deeplearning.ai 和 Udacity 都提供了相关教程。
2.0 正式版有哪些更新
主要特性和改进
TensorFlow 2.0 重点关注易用性,更新了以下主要内容:
重大更新
许多后端不兼容的 API 更新已经被清理,使得它们更为稳定,更改的 API 包括:
tf.estimator:
tf.keras:
tf.lite:
此外还有一系列 Bug 修复和其他改进。
如何使用 TF 2.0
安装
用户可使用 pip 进行安装。
CPU 版本为:
pip install tensorflow
GPU 版本为:
pip install tensorflow-gpu
示例代码
因为使用 Keras 高级 API,TensorFlow2.0 的搭建和编译模型也非常简单,基本就是调用已有的成熟方法就行了。其中搭建模型架构可以像堆积木那样完成,编译只需要给定最优化器、损失函数和度量方法三个关键要素就行了。
下面,我们可以看看模型训练与评估的风格。没有 tf.Session()、没有 sess.run()、没有各种占位符的 feed_dict,一切都只要简单的一行代码。
训练完模型后,最后就是做推断了: