雷锋网 AI 科技评论按:3 月 7 日凌晨,谷歌 TensorFlow 开发者峰会(TensorFlow Dev Summit 2019)在美国加州举行。自今年 1 月份谷歌放出 TensorFlow 2.0 开发者预览版,开发者们如今终于迎来了万众期待的 TensorFlow 2.0 Alpha 版的正式发布。也许是为了呼应谷歌此前将 TensorFlow 2.0 称作重要的「里程碑」,TensorFlow 的 Logo 也从过去的三维积木状变成了扁平化风格的「T」和「F」字母拼接。
除了发布 TensorFlow 2.0 Alpha 版,谷歌在本次大会上还发布了「一箩筐」围绕 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 版的到来,谷歌还发布了两门深度学习课程:Udacity 的《TensorFlow 深度学习简介》和 Deeplearning.ai 的《TensorFlow:从基础知识到掌握专业化》系列课程。
今年 1 月份,谷歌就放出 TensorFlow 2.0 开发者预览版,引起了开发者们的满腔期待。而不到两个月后随之而来的 TensorFlow 开发者峰会,其最受关注的环节莫过于 TensorFlow 2.0 Alpha 版的发布。
据悉,针对 TensorFlow 2.0,TensorFlow 团队听取了开发者关于「简化 API、减少冗余并改进文档和示例」的建议来进行设计,将 TensorFlow 2.0 Alpha 版的更新重点放在简单和易用性上,主要进行了以下更新:
使用 Keras 和 eager execution,轻松建立简单的模型并执行
在任何平台上的实现生产环境的模型部署
为研究提供强大的实验工具
通过清除不推荐使用的 API 和减少重复来简化 API
同时,在过去的几年中,谷歌陆续在 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 的过程,谷歌还提供一个转换工具和指导文档用来更新 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 总下载量超过 4100 万次,提交了 5 万多次代码更新,目前已有 1800 多名来自全世界的贡献者。
而随着更加顺从民意、使用更加简单的 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 版的发布,谷歌还特别应景地一同发布了配套的深度学习课程:Deeplearning.ai 的《TensorFlow:从入门到精通》(「TensorFlow: From Basics to Mastery Specialization」)和优达学城的《TensorFlow 深度学习简介》(「Intro to TensorFlow for Deep Learning」)。
《TensorFlow:从入门到精通》是 Deeplearning.ai 的一系列实践课程,由吴恩达老师参与开发并执教,目的在于帮助大家了解:
如何在 TensorFlow 中构建机器学习模型
利用深度神经网络和卷积神经网络构建图像识别算法了解
如何在移动设备和网络上部署模型
学习图像识别以外的物体检测、文本识别等,进入等
扩展针对自定义学习/训练的基本 API
除了吴恩达老师,该课程的另一重量级教师为 Laurence Moroney 博士。
该课程分四周进行,课程安排为:
第一周:介绍一种新的变成范式
第二周:计算机视觉简介
第三周:利用卷积神经网络增强计算机视觉
第四周:利用真实世界的图像
课程链接地址:https://www.deeplearning.ai/tensorflow-specialization/
《TensorFlow 深度学习简介》则是优达学城的免费课程,它自 2016 年推出以来,目前已有超过 40 万名学生参加,而今天则正式成为 Deeplearning.ai TensorFlow 系列课程的一部分。该课程从实践的角度讲解了软件深度学习知识,以及在移动设备、云端和浏览器上实际运行 TensorFlow 模型,让学生掌握创建 AI 应用所需的所有技能。
该课程目前已经更新了 4 堂课,分别为:第一堂课:课程大纲介绍;第二堂课:机器学习简介;第三堂课:训练 MNIST 模型;第四堂课:CNN 简介。目前,该 4 堂课已全部上线,而第 5 堂课则还未更新。
课程链接地址:https://www.udacity.com/course/intro-to-tensorflow-for-deep-learning--ud187
正式发布 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 月的谷歌 I/O 开发者大会被首次提出以来,TensorFlow Lite 目前已部署到超 20 亿移动设备中,并已应用到谷歌搜索、谷歌助手、Pixel Visual Core 等诸多原生谷歌应用和服务、以及谷歌合作伙伴的产品中。TensorFlow Lite 对于谷歌的重要性不言而喻,本次正式发布 TensorFlow Lite 1.0 可谓是众望所归。
TensorFlow.js 1.0 版本开源地址:https://github.com/tensorflow/tfjs/releases
为 TensorFlow 家族再添两位新成员
另外,谷歌还为 TensorFlow 家族再添了两位新成员:TensorFlow Federated(TFF)开源框架和 TensorFlow Privacy 机器学习开源库。
TensorFlow Federated(TFF)是一个开源框架,适用于面向分散式数据执行机器学习和其他计算。它采用一种联合学习(Federated Learning,FL)的机器学习方法,可在多个客户端上训练共享的全局模型,同时在本地保存训练数据。
TensorFlow Privacy 则是一个 TensorFlow 机器学习开源库,能够让开发人员更容易培训具有强大隐私保障的 AI 模型。谷歌表示,计划将 TensorFlow Privacy 发展成为培训机器学习模型的最佳技术中心,并提供强大的隐私保障。
TensorFlow Federated 开源地址:https://github.com/tensorflow/federated
TensorFlow Privacy 开源地址:https://github.com/tensorflow/privacy
对 2019 年度 TensorFlow 开发者峰会感兴趣的同学,可前往峰会官网:https://www.tensorflow.org/dev-summit 回看视频并查看相关信息。雷锋网雷锋网