码上作答第一期(上)| 10 个学好 TensorFlow 2.2 的理由

2020 年 6 月 11 日 TensorFlow


“码上作答” 专栏



为了更好地帮助开发者解决应用 TensorFlow 时遇到的问题,提供更丰富的技术指引、应用灵感,我们上线了 “码上作答” 专栏,每个月针对开发者集中关心的问题,邀请各行各业、具有丰富 TensorFlow 经验的资深专家分享经验和心得,同时接受大家的提问,为各位开发者答疑解惑。


接下来有请 “码上作答” 第一期嘉宾

彭靖田


大家好,作为一路陪伴和见证 TensorFlow 从 v0.7 到现在的开发者和老用户,很开心有机会能够作为第一期嘉宾参与 TensorFlow “码上作答” 栏目,与各位分享我对 AI / TensorFlow 2.2  的学习经验和心得体会。


这一期,我想尽可能系统化的谈谈对最新版本 TensorFlow 2.2 的看法。希望通过我整理总结的 10 个学好 TensorFlow 2.2 的理由,AI 新玩家们可以快速入门,TensorFlow 老师傅们能够获得一个更加全面的视角来认知 TensorFlow 及其生态。

 

欢迎大家在阅读后向我提问,我将在 “码上作答” 第一期的下篇为大家解答,记得持续关注!(提问方式请见文末)



理由1:快速上手只需十分钟

TensorFlow 2.2 在易用性和简化 API 方面做了大量优化。对于新手,可以使用高层封装的 API 实现面向模型编程 (Model Oriented Programming, MOP)。我们以一个典型的 MNIST CNN 模型为例,展示 TensorFlow 2.2 的实现:

实例化一个 CNN 模型


统计模型基础信息


一行代码训练模型


通过这个简单示例,我们得以管中窥豹。tf.keras 提供了一套面向模型的编程方法:实例化 (Sequential 和 Functional API) 、统计 (Summary)、定义优化器和损失函数 (Compile)、模型训练 (Fit)、评估 (Evaluate)、预测 (Predict)、保存 (Save) 和加载 (Load) 等。这使得 TensorFlow 用户可以更加专注于模型开发和测试。

  • 请参考
    https://github.com/DjangoPeng/tensorflow-101/blob/master/experts/code_sample/chapter-2/tf_keras.ipynb



理由2:快速迁移现成 Keras 项目

TensorFlow 2.2 实现了 Keras 所有接口的完全兼容,并且解决了原生 Keras 不支持分布式训练的问题。


因此,如果你已经在使用 Keras 实现的模型,可以尝试使用import tensorflow.keras as keras来进行快速迁移。如果你想要尝试扩展 Keras 分布式训练,也可以使用 tf.distribute 模块赋能你之前的训练代码。

  • 参考
    https://tensorflow.google.cn/beta/tutorials/keras



理由3:快速部署生产环境

很多老用户都对 TF Serving 这款生产级的 AI 服务框架赞不绝口。 TensorFlow 2.2 不仅发扬了前辈的优良传统,同时将 tf.keras 训练的 HDF5 模型格式和 SavedModel 格式打通。 你可以在使用 model.save ("saved_model") 保 存模型时选择 TF Serving 可加载的 SavedModel 目录。 接着,你只需要使用 TensorFlow Serving 官方镜像 tensorflow/serving 便 可以快速将 AI 模型部署到生产环境。

  • 参考
    https://tensorflow.google.cn/tutorials/keras/save_and_load



理由4:快速实现模型分布式训练

TensorFlow 早在 v0.8 就已实现基于 PS-Worker 的分布式模型训练。


经过3年多的迭代和更新,TensorFlow 2.2 不仅提升了分布式训练的性能,而且通过内置的6种分布式训练策略,帮助不熟悉分布式计算的新同学用一行代码实现分布式训练,效率提升十分明显。

部分内置的分布式训练策略


  • 参考
    https://tensorflow.google.cn/guide/distributed_training



理由5:原生支持多元化的数据处理

tf.data 是 TensorFlow 2.2 推荐使用的数据处理 API ,其强大的功能体现在对于多种数据来源、数据格式和数据处理方法的支持。对于个人开发者和小团队,可以使用本地文件和对象存储系统作为数据来源,对于拥有海量数据的大厂,则可以从分布式文件系统中分批次读取数据或搭建数据处理流水线。


从数据格式和内置数据处理方法的丰富度上,我们可以洞察到 TensorFlow 2.2 已不仅是一个处理计算机视觉或深度学习的框架,而是能够实现 NLP 和 GAN 等多种细分 AI 领域的通用 AI 框架。

tf.data 模块介绍


  • 参考
    https://tensorflow.google.cn/guide/data



理由6:原生支持经典分类模型

TensorFlow 2.2 原生支持了多种经典分类模型,包括重量级的 EfficientNet(最新 nightly 已支持)、DenseNet、 ResNet、VGGNet 和轻量级的 MobileNet、Xception 等。你可以通过 tf.keras.applications 模块快速体验和使用这些经典模型。不论是在基于 ImageNet 上预训练的模型做迁移学习,亦或是从零到一的训练全新模型。

TensorFlow 2.2 内置分类模型


  • 参考

    https://tensorflow.google.cn/api_docs/python/tf/keras/applications



理由7:原生支持移动和物联网设备

在 TensorFlow 1.x 时代,SavedModel 转 tflite 格式部署到移动和物联网设备是可行的,但易用性不算很好。


TensorFlow 2.2 将 TF Lite 生态进一步整合到了原生框架中,并正式推出了 tf.lite 模块。现在,你可以直接调用 tf.lite.TFLiteConverter 实现SavedModel、HDF5和ConcreteFunctions 等多种模型格式转 tflite 格式。


同时,你还可以通过 tf.lite.Interpreter 定义模型在物联网设备上运行时的预测接口。这使得 TensorFlow 2.2 真正实现框架原生支持 AIoT。

  • 参考
    https://tensorflow.google.cn/api_docs/python/tf/lite



理由8 原生支持可视化数据、模型和训练

在深度学习模型训练和评估过程中,海量数据、高维模型、多种指标的变化对于算法工程师来说是十分重要的信息。并且,如果能够有高效的手段获取其中的数据洞察,将会非常有助于提升模型训练效率和经验积累。


TensorBoard 可视化工具包自推出后一直广受好评,它的出现使得开发者能够更加直观的了解数据和模型的质量,以及关键指标分布和变化。在今年的 TensorFlow Dev Summit 上,官方团队发布了TensorBoard 在线版 (https://tensorboard.dev/)。这使得 TensorFlow 用户不再需要独立安装 TensorBoard,而能够直接体验到 TensorFlow 生态中这一重要特性。


  • 参考
    https://tensorflow.google.cn/tensorboard



理由9:前沿探索量子机器学习

量子机器学习 (QML) 是量子信息 (Quantum Information) 领域内新兴的子领域,其将量子计算的速度与机器学习所提供的学习和适应能力结合到了一起。量子机器学习可以分为两个部分:
  1. 将从量子计算机和传统计算机获得的数据作为训练数据训练模型的机器学习算法。
  2. 过量子力学的思想和模型来改进机器学习算法也属于量子机器学习的一部分。


量子机器学习自1988年首次提出细胞自动机的量子推广后,逐步发展出量子增强学习 (2008) 、HHL 量子算法 (2009) 、量子主成分分析 (2014) 、量子 SVM 和贝叶斯网络上的量子推断 (2014) 、量子推荐系统 (2016) 等经典算法的拓展。


虽然现阶段量子计算机和量子比特数量限制还无法大规模使用 QML,但作为最前沿的交叉学科,TensorFlow 2.2 也实现了对这一前沿领域的支持—— TensorFlow Quantum (TFQ) 。

基于 TFQ 实现的混合量子机器学习模型


  • 参考
    https://tensorflow.google.cn/quantum



理由10:企业版助力数字化转型

许多企业用户对于 TensorFlow 快速发展带来的 API 版本变化想必是心有余悸。一个好消息是此类用户将由官方团队“兜底”。 TensorFlow 企业版将提供长期的技术支持


针对某些版本,谷歌将提供长达三年的补丁程序,所有补丁和错误修复将在 TensorFlow 主线代码存储库中提供。另外,谷歌还将向正在构建 AI 模型的公司提供来自  Google Cloud 和 TensorFlow 团队的工程协助。

TensorFlow 企业版优势


  • 参考
    https://cloud.google.com/tensorflow-enterprise



One More Thing

我希望不论是从业者,亦或是有志于投身 AI 的新同学,都能够勇敢踏出学习 AI 的第一步:快速上手一个 AI 框架—— TensorFlow 2.2 。同时,在 AI 理论积累和动手实战的基础上,持之以恒地学习,逐渐成长为一个玩转 AI 技术的 TFBoys / TFGirls 。


最后,打个小广告:为了系统化和全方面的分享这几年在 AI 落地实战中积累的的踩坑经验和 TensorFlow 2.2 的使用技巧,我在极客时间开设了课程TensorFlow 2 项目进阶实战 》(http://suo.im/5Fh32t) 


同时,课程中的项目实战代码也已开源 (https://github.com/DjangoPeng/tensorflow-101),欢迎有兴趣的同学关注和订阅!



向我提问吧!

看完这 10 个学好 TensorFlow 2.2 的理由,各位是否还有哪些疑惑或者问题,尤其是在 AI 技术落地和 TensorFlow 快速入门方面的?欢迎向我提问!在本篇推文文末留言你的提问,我们将筛选问题并在 6 月 18 日下周四 “码上作答” 第一期的下集为大家做出解答。期待看到大家的踊跃提问(截止至 6 月 14 日周日下午 17:00 前



附录:

我为大家整理好了一系列学习资料,马上一键到达! 




点击 “ 阅读原文” 访问官网教程。

登录查看更多
0

相关内容

Google发布的第二代深度学习系统TensorFlow
《动手学深度学习》(Dive into Deep Learning)PyTorch实现
专知会员服务
116+阅读 · 2019年12月31日
【干货】谷歌Joshua Gordon 《TensorFlow 2.0讲解》,63页PPT
专知会员服务
24+阅读 · 2019年11月2日
开源书:PyTorch深度学习起步
专知会员服务
49+阅读 · 2019年10月11日
TensorFlow 2.0 学习资源汇总
专知会员服务
66+阅读 · 2019年10月9日
社区分享 | Spark 玩转 TensorFlow 2.0
TensorFlow
15+阅读 · 2020年3月18日
Github项目推荐 | PyTorch 中文手册 (pytorch handbook)
官方解读:TensorFlow 2.0 新的功能特性
云头条
3+阅读 · 2019年1月23日
Tensorflow Eager Execution入门指南
专知
6+阅读 · 2018年4月16日
发布TensorFlow 1.4
谷歌开发者
7+阅读 · 2017年11月23日
手把手教TensorFlow(附代码)
深度学习世界
15+阅读 · 2017年10月17日
手把手教你由TensorFlow上手PyTorch(附代码)
数据派THU
5+阅读 · 2017年10月1日
Financial Time Series Representation Learning
Arxiv
10+阅读 · 2020年3月27日
Arxiv
5+阅读 · 2020年3月26日
Meta-Learning with Implicit Gradients
Arxiv
13+阅读 · 2019年9月10日
Rapid Customization for Event Extraction
Arxiv
7+阅读 · 2018年9月20日
Arxiv
4+阅读 · 2018年9月6日
VIP会员
相关资讯
社区分享 | Spark 玩转 TensorFlow 2.0
TensorFlow
15+阅读 · 2020年3月18日
Github项目推荐 | PyTorch 中文手册 (pytorch handbook)
官方解读:TensorFlow 2.0 新的功能特性
云头条
3+阅读 · 2019年1月23日
Tensorflow Eager Execution入门指南
专知
6+阅读 · 2018年4月16日
发布TensorFlow 1.4
谷歌开发者
7+阅读 · 2017年11月23日
手把手教TensorFlow(附代码)
深度学习世界
15+阅读 · 2017年10月17日
手把手教你由TensorFlow上手PyTorch(附代码)
数据派THU
5+阅读 · 2017年10月1日
Top
微信扫码咨询专知VIP会员