3 月 7 日凌晨,Google TensorFlow 开发者峰会(TensorFlow Dev Summit 2019)在美国加州举行。自今年 1 月 Google 放出 TensorFlow 2.0 开发者预览版,开发者终于迎来万众期待的 TensorFlow 2.0 Alpha 版正式发表。也许是为了呼应 Google 之前将 TensorFlow 2.0 称做重要的“里程碑”,TensorFlow 的 Logo 也从过去的三维积木变成扁平化风格的“T”和“F”字母相接。
除了发表 TensorFlow 2.0 Alpha 版,Google 在本次大会还发表“一箩筐”围绕 TensorFlow 的其他软件更新和最新成果,包括更新的 TensorFlow Lite 1.0、TensorFlow js 1.0 和 Swift for TensorFlow 0.2,端到端的机器学习平台 TensorFlow Extended(TFX)及两款针对隐私问题的 TensorFlow Federated 开源框架和 TensorFlow Privacy 开源程式库。
另外值得一提的是,随着 TensorFlow 2.0 Alpha 版到来,Google 还发表了两门深度学习课程:Udacity 的“TensorFlow 深度学习简介”和 Deeplearning.ai 的“TensorFlow:从基础知识到掌握专业化”。
TensorFlow 2.0 Alpha 版:强调简单易用性
今年 1 月,Google 放出 TensorFlow 2.0 开发者预览版,引起开发者的满腔期待。不到两个月后的 TensorFlow 开发者峰会,最受关注的环节莫过于 TensorFlow 2.0 Alpha 版发表。
据悉,针对 TensorFlow 2.0,TensorFlow 团队听取了开发者关于“简化 API、减少多余并改进档案和示例”的建议来设计,将 TensorFlow 2.0 Alpha 版更新重点放在简单和易用性,主要有以下更新:
- 使用 Keras 和 eager execution,轻松建立简单的模型并执行。
- 在任何平台达成生产环境的模型部署。
- 为研究提供强大的实验工具。
- 清除不建议使用的 API 和减少重复来简化 API。
过去几年,Google 陆续在 TensorFlow 添加许多套件,而 TensorFlow 2.0 Alpha 版则将这些套件打包成综合性平台,支援从训练到部署的机器学习工作流程,新架构的简化概念图如下所示:
更简单化的新框架更带来更简洁的流程,即先使用 tf.data 建立的输入导管读取训练资料,然后使用 tf.keras 或 Premade Estimators 构建、训练和验证模型;接着用 eager execution 执行和除错;再使用 Distribution Strategy API 在不变更模型定义的情况下,基于 CPU、GPU 等不同硬件规格分散和训练模型;最后将模型导出到 SavedModel 储存。流程如下图所示:
此外,TensorFlow 2.0 Alpha 版还有些新功能,允许研究人员和进阶用户使用丰富的延伸去实验,如 Ragged Tensors、TensorFlow Probability、Tensor2Tensor 等。
为了简化程式码迁到 TensorFlow 2.0 的过程,Google 还提供转换工具和指导档案,用来更新 TensorFlow 1.x Python 程式码以使用与 TensorFlow 2.0 相容的 API,并将无法自动转换的程式码标记出来。
API 方面的更新也是 TensorFlow 2.0 Alpha 版一大亮点,将 Keras API 指定为构建和训练深度学习模型的进阶 API,并舍弃其他 API。值得一提的是,Keras 提供了几个模型构建 API,例如可用 Sequential API 构建模型,然后使用“compile”和“fit”,tensorflow.org 中所有常见的“tf.keras”范例均可在 2.0 使用。
TensorFlow 2.0 Alpha 版另一个最明显的改变就是将用于机器学习的实验和研究平台 Eager execution 设为预设优先,意味着任何运算呼叫后就会立即执行,不再需要预先定义静态图,就可透过“tf.Session.run()”执行图的各部分,让执行过程更简单快捷。
此外,Eager execution 还有助于原型制作、除错和监控执行中的程式码,用户可使用 Python 除错程式检查变数、层级梯度等物件,并利用装饰器“@tf.function”内建的 Autograph 直接抓取图表最佳化和效率,整个过程不仅能保留 TensorFlow1.x 基于静态计算图执行的所有优点:效能最佳化、远端执行,以及串列化、导出和部署的能力,同时还增加了简单 Python 表达程式的弹性和易用性。
整体而言,TensorFlow 2.0 Alpha 版有以下三大特徴:
- 易用性,主要体现在使用 tf.keras 为进阶 API,且将 Eager execution 当作预设模式。
- 简洁性,主要体现在 TensorFlow 2.0 Alpha 版移除重复功能,且不同 API 的呼叫语法也一致直觉,同时相容性更完善。
- 弹性,主要是 TensorFlow 2.0 Alpha 版提供完整低阶 API,并可在 tf.raw_ops 存取内部作业,同时还提供变数、checkpoint 与层级的可继承界面。
开发者峰会时,TensorFlow 工程总监 Rajat Monga 也向大家呈现 TensorFlow 这几年来的“战绩”:自 2015 年 11 月推出,TensorFlow 总下载量超过 4,100 万次,提交 5 万多次程式码更新,目前已有 1,800 多名全世界的贡献者。
随着更顺从民意、使用更简单的 TensorFlow 2.0 Alpha 版发表,TensorFlow 又将收获怎样的成绩呢?大家可拭目以待。
- TensorFlow 2.0 Alpha 版官方网址:https://www.tensorflow.org/alpha
- TensorFlow 2.0 Alpha 版开源地址:https://github.com/orgs/tensorflow/projects/4
注:针对不同等级的开发者,TensorFlow 2.0 Alpha 版设定了两版教程:
-
初学者版:使用 Keras Sequential API,这是最简单的 TensorFlow 2.0 入门。
-
资深人士版:展示如何指令式编写正向递回、如何使用 GradientTape 编写自订训练循环,以及如何使用 tf.function 一行程式码自动编译程式码。
两门深度学习课程:配套 TensorFlow 2.0 Alpha 版
随着 TensorFlow 2.0 Alpha 版发表,Google 还特别应景地一同发表配套深度学习课程:Deeplearning.ai 的“TensorFlow:从入门到精通”(TensorFlow: From Basics to Mastery Specialization)和优达学城的“TensorFlow 深度学习简介”(Intro to TensorFlow for Deep Learning)。
“TensorFlow:从入门到精通”是 Deeplearning.ai 一系列实践课程,由吴恩达参与开发并执教,目的在于帮助大家了解:
- 如何在 TensorFlow 构建机器学习模型。
- 利用深度神经网络和卷积神经网络构建影像辨识算法。
- 如何在行动装置和网络部署模型。
- 学习影像辨识以外的物体侦测、文件辨识等,进入等。
- 延伸针对自订学习/训练的基本 API。
除了吴恩达,另一位重量级教师为 Laurence Moroney 博士。
课程分 4 周进行,内容安排为:
- 第一周:介绍一种新的变成范例。
- 第二周:电脑视觉简介。
- 第三周:利用卷积神经网络增强电脑视觉。
- 第四周:利用真实世界的影像。
“TensorFlow 深度学习简介”则是优达学城的免费课程,自 2016 年推出以来,已有超过 40 万名学生参加,现在正式成为 Deeplearning.ai TensorFlow 系列课程的一部分。课程从实践角度讲解软件深度学习知识,以及在行动装置、云端和浏览器实际执行 TensorFlow 模型,让学生掌握建立 AI 应用所需的所有技能。
目前已更新 4 堂课,分别为:第一堂课程大纲介绍;第二堂课机器学习简介;第三堂课训练 MNIST 模型;第四堂课 CNN 简介。4 堂课已全部上线,第 5 堂课还未更新。
“一箩筐”其他软件的重大更新
正式发表 TensorFlow.js 1.0 、TensorFlow Lite 1.0
除了 TensorFlow 2.0 Alpha 版,另一亮点便是正式发表 TensorFlow.js 1.0 和 TensorFlow Lite 1.0 了。
自 2018 年发表以来,TensorFlow.js 被大量采用,下载量达 30 万次,Github 星标数量超过 1 万,项目贡献者超过 100 个。本次正式发表的 TensorFlow.js 1.0 版本,在先前版本基础上的更新包括:增加一个针对 Web 开发人员的面向影像、文件、语音等常见机器学习工作的现成模型程式库;添加执行 JS 的更多平台,例如桌面 App、行动端区域的平台等。另外,效能有提升。
针对行动和内嵌式装置打造的轻型级、跨平台解决方案,TensorFlow Lite 主要解决的问题是:机器学习在手机、汽车、可穿戴装置等终端机装置面临有限的计算力、内存及电池容量等诸多限制。
自 2017 年 5 月 Google I/O 开发者大会首次提出,TensorFlow Lite 已部署到超过 20 亿台行动装置,并应用到 Google 搜寻、Google 助理、Pixel Visual Core 等诸多原生 Google 应用和服务、Google 合作伙伴的产品中。TensorFlow Lite 对Google 的重要性不言而喻,本次正式发表 TensorFlow Lite 1.0 可谓众望所归。
为 TensorFlow 家族再添两位新成员
另外,Google 还为 TensorFlow 家族再添两位新成员:TensorFlow Federated(TFF)开源框架和 TensorFlow Privacy 机器学习开源程式库。
TensorFlow Federated(TFF)是开源框架,适用于针对分散式资料执行机器学习和其他计算。它采用联合学习(Federated Learning,FL)的机器学习方法,可在多个用户端训练共用的全域模型,同时在本地储存训练资料。
TensorFlow Privacy 则是 TensorFlow 机器学习开源程式库,能让开发人员更容易培训有强大隐私保障的 AI 模型。Google 表示,计划将 TensorFlow Privacy 发展成培训机器学习模型的最佳技术中心,并提供强大的隐私保障。
最后,对 2019 年度 TensorFlow 开发者峰会有兴趣的读者,可前往官网观看影片详阅相关资讯。
(本文由 雷锋网 授权转载;首图来源:TensorFlow)