TensorFlow 发布的第四年,哪些最重要?@GDD 2019

GDD 进行到第二天,开发者们依然热情不减, TensorFlow RoadShow 现场座无虚席。距离 2015 年 TensorFlow 面世,如今已过去四年,围绕 TensorFlow,谷歌打造了一整套生态系统,用户群体也越来越广大。那么这一次,谷歌的 TensorFlow 团队,又为我们带来了什么呢?

昨日,GDD 大会上,谷歌对最近的动态和新品,做了详尽的展示。在 GDD 的第二天,则是将重心倾注在了已发布四年的 TensorFlow。

今日凌晨,苹果召开了新品发布会,推出了三摄 iPhone 11 系列,此外 iPad、 Apple Arcade、Apple TV+、iApple Watch Series 5 等新品也随之发布。

如果说苹果在用新品刺激着消费者群体,那么在大洋的另一边,谷歌开发者大会则还在低调而沉稳地进行,详细地介绍着自己在技术上最新进展,给开发人员带来最实际的帮助。

特设的 TensorFlow RoadShow,排满了整整一天的日程。那么今日的 GDD 上,TensorFlow 团队又带来了哪些看点呢?

TensorFlow:最受欢迎的机器学习框架

在 TensorFlow RoadShow  上,其亚太区产品经理梁信屏首先出场,展开了《机器学习的现在和未来》的分享,并陈述了 TensorFlow 的发展概况。

梁信屏为 TensorFlow 的发展做出了分析

当前机器学习发展的关键有三点:数据集、算力和模型。而 Tensorflow 则是机器学习潮流顺应下,最成功的一个机器学习平台。

从 2015 年发布以来,TensorFlow 一直在完善和更新,截至目前,有超过 4100 万的下载量,超过 5 万次提交量,9900 次代码改动请求,以及 1800 多位贡献者。

TensorFlow 拥有着庞大的用户群体

因为它的强大功能,使用 TensorFlow 的实际案例也越来越多,多家企业和机构在用它进行研发。此外,TensorFlow 中文网站也已开通,中文社区和技术资源都在日渐扩增。


介绍完这些情况,随即开启了  TensorFlow 的全面展示,其团队的工程师们,对 TensorFlow 的进展做了详细介绍。

划重点:TensorFlow 2.0 


备受瞩目的 2.0 版本终于在 2019 年面世。今年 6 月份, TensorFlow 2.0 Beta 版本发布,在今天的 GDD 上,工程师宣称 TensorFlow 2.0 RC 现已可用。相比于 1.0 版本,新版围绕易用性、高性能、可扩展,三个方面进行了升级。

其中最吸引人的地方在于,使用 Keras  作为高阶 API ,优化默认 Eager Execution ,移除重复的功能,提供了统一 API 

工程师介绍了 TensorFlow 2.0  围绕 Keras 做的改进

TensorFlow 2.0  使用 Keras 和 Eager Execution,能够轻松构建模型,在任意平台上实现生产环境的稳健模型部署。

介绍完 2.0 的具体情况后,谷歌工程师梁艳慧也详细介绍了从版本 1.0 升级到 2.0 的方法。

在谷歌内部,已经开始了内部的版本迁移,官方网站也提供了详细的代码迁移指南与工具。如果用户十分需要或者依赖于某个 1.0 版本的 API,可以根据指南轻松地将其迁移至 2.0 版本。

那么 TensorFlow 2.0 具体在哪些方面值得关注呢?谷歌的工程师们从以下几个角度做出了详细的介绍。

TF.Text:训练 NLP 模型 


作为机器学习中一个重要的方向,自然语言处理有着很大的市场需求。TF 官方推出和升级了 TF.Text,为 TensorFlow 2.0 提供了强大的文本处理功能,且兼容动态图模式。

TF.Text  具有多项优点

TF.Text 是一个 TensorFlow 2.0 库,可以使用 PIP 命令轻松安装。能够在基于文本的模型中定期执行预处理过程,并提供 TensorFlow 核心组件中并未提供的、关于语言建模的更多功能和操作。

其中最常见的功能就是文本的词条化(Tokenization)。词条化是将字符串分解为 token 的过程。这些 token 可能是单词、数字和标点符号,或是几种元素的组合。

TF.Text 的 Tokenizer 一种用于识别文本的新型张量, Ragged Tensors。并提供了三个新的 Tokenizer。其中最基本的是空白 Tokenizer,可以在 ICU 定义的空白字符(例如空格,制表符,换行符)上拆分 UTF-8 字符串。

TF.Text 库还包括归一化、n-gram 和标记序列约束等功能。使用 TF.Text 有许多好处,例如用户不需要关注训练和预测的一致性,并且不需要自己管理预处理脚本。

TensorFlow Lite:在端上部署机器学习


两位谷歌资深软件工程师王铁震与刘仁杰,介绍了 TensorFlow Lite 的功能更新以及技术细节。

TensorFlow Lite Roadmap 一览

TensorFlow Lite 是用于手机以及嵌入式设备上,部署机器学习应用的框架。之所以选择在端上部署,主要的考虑体现在以下三点:

第一:几乎没有延迟,可以提供稳定、及时的用户体验;

第二:不需要连接网络,可以在没有网络或者是网络很差的环境中使用;

第三:隐私保护,不会把数据传到云端,所有的处理能够在端上进行。

鉴于这些优势,目前基于 TensorFlow Lite 在端上部署机器学习的应用,已有有了很大的市场,而且在 2.0 中,部署模型的能力也得到了强化。


比如,闲鱼 APP 在租房场景,用 TensorFlow Lite 自动对图片打标签,提高了租房效率;科沃斯机器人将 TensorFlow Lite 部署在扫地机器人中,实现自动避障等等。TensorFlow Lite 在谷歌产品中也被广泛应用,如 Google 相册、输入法、云助理等。

根据统计,有超过 20 亿的移动设备,已经安装了基于 TensorFlow Lite 的应用。

不过,在端上部署机器学习仍然有着不少的挑战,比如相对云端来说,端上算力少、内存少,而且端上部署需要考虑耗电量的问题。TensorFlow Lite 也针对这些挑战做出了优化改善,以期将机器学习更容易地在端上进行部署。


TensorFlow Lite 最终实施端口,不仅能够部署在安卓和 iOS,还适用于在嵌入式系统(如树莓派)、硬件加速器(如 Edge TPU)、微控制器(MCU)中。

TensorFlow 正在向微控制器迈进

目前它在图像分类、对象检测、姿态估计、语音识别、手势识别上已经得到了应用,而 BERT 、风格迁移、语音唤醒等功能也将后续发布。

如何在 TensorFlow Lite 中部署自己的模型?刘仁杰介绍道,这只需要按照三个步骤:训练 TF 模型、转换到 TF Lite 格式、部署模型到端侧设备,根据 TF 2.0 的集成库,只需不多的代码调用就可实现。

TensorFlow.js:可制作微信小程序的平台

TensorFlow.js  是为 JavaScript 定制的深度学习平台。可以运行已有模型、对已有模型进行再训练、以及训练新的模型。

工程师介绍 TensorFlow.js  的直播画面

为了增加它的实用性,TensorFlow.js 支持多平台:浏览器、无线端(如微信小程序)、服务器、台式机。除了可在多个平台运行机器学习模型,还可以对模型训练,此外具有 GPU 加速功能,并自动支持 WebGL。

在现场演示中,他们展示了一款基于 TensorFlow.js 的虚拟试装程序 Modiface 。通过这个框架,打造出了最小最快的虚拟试妆的小程序。据悉,后续还将实现发型转换、年龄转化模拟、肤质检测等功能。

用 TensorFlow.js  实现虚拟眼镜搭配小应用

此外,谷歌工程师介绍到,TensorFlow.js 适用的网站、无线端上,拥有大量的机器学习的应用场景,比如增强现实 AR、基于手势和肢体的交互、语音识别、无障碍网站、语义分析、智能会话、网页优化。

目前,TensorFlow.js 已经支持图像分类、物体识别、姿态识别、语音命令识别、文本分类等功能,比如推出的微信小程序插件,使用一个 API 就可以实现丰富的功能。

  期待谷歌以及 TensorFlow  带来更多惊喜

除了上述提到的 TensorFlow 的一些功能,还对 Tf.distribute、TensorFlow 优化工具包、以及 TensorFlow 的一些企业应用案例做了介绍。最后,梁信屏再次登台,分享了 TensorFlow 的社区情况。

 TensorFlow 的社区中有不少大神用户

在 TensorFlow 的核心建设上,超过 2135 位贡献者。有 109 位机器学习领域的谷歌开发者专家;全球范围内多达 46 个 TensorFlow 用户群组。他还详细介绍了加入 TensorFlow 社区的途径。

随着 TensorFlow RoadShow  的结束,谷歌开发者大会也结束了所有日程,圆满落幕。对所有的技术开发人员来说,这场盛会所带来的干货,应该比观看苹果发布会要直观的多。

让我们期待 TensorFlow 的下一次突破,也希望谷歌能够在 AI 赛道上,更加给力。明年 GDD,我们再约!