重磅发布2.0 Alpha版,TensorFlow新定位:端到端开源机器学习平台

刚刚,谷歌在 Tensorflow Developer Summit 2019 大会上发布 TensorFlow 2.0 Alpha 版。虽然在此之前关于 TensorFlow2.0 的众多更新已经放出,但作为当前最为流行的深度学习框架,2.0 Alpha 版的正式发布依旧引人关注。此外,今日谷歌还开源了新的框架与库,发布了两款有趣的开发硬件。还换了 Logo~

自 2015 年开源以来,TensorFlow 得到了越来越多开发者的认可,成为了当前最受欢迎的深度学习框架之一。据现场介绍,目前为止 TensorFlow 已经被下载超过 4100 万次、提交 5 万多次代码更新、1800 多位贡献者。

与此同时,这 3 年来深度学习框架之争越来越激烈:Facebook 主推的 PyTorch 成为后起之秀,有力压 TensorFlow 之势;2016 年国内科技巨头百度发布 PaddlePaddle,2018 年底发布的 PaddlePaddle 1.0 版本标志着该框架走向成熟。

不得不说,迫于 PyTorch 的压力,TensorFlow 2.0 有了众多改变,例如 2018 年 9 月份在上海谷歌开发者大会上,机器之心了解到一个重大改变是将会把 Eager Execution 变为 TensorFlow 默认的执行模式。2019 年 1 月份,谷歌上线了 TensorFlow 2.0「开发者预览版」,让开发者们可以尝试使用。

下图展示了近几年 TensorFlow 的版本更新。但今天,TensorFlow 已经成熟为一个完全端到端的生态系统,所以今天发布的 TensorFlow 2.0 标志着一个新时代的开始。

发布 TF 2.0 Alpha 版

TensorFlow 作为下载量最大的深度学习框架,过去收到了大量的反馈。据介绍,TensorFlow 用户希望能够有更简单的 API、减少冗余、改进文档与示例。因此,TensorFlow 2.0 在设计上注重以下三点:简单、强大、可扩展。

在简单方面,TensorFlow 2.0 提供更简化的 API、注重 Keras、结合了 Eager Execution。通过扩展到 exaflops 级别,TensorFlow2.0 变得更加强大,在同样的稳健性与性能下效率会更高。

TensorFlow 在过去的开发中已经构建了非常多的模块或组件,而 TensorFlow 2.0 则需要对整体工作流组件做极大的优化。下图展示了 TensorFlow 的高层设计架构,这些组件和特征将被打包成一个综合平台,从而支持从训练到部署的整个机器学习工作流程。

下图展示了 Tensorflow2.0 的强大 API 组件在整个工作流的适配,其中数据导入与处理可调用 tf.data、模型构建可以用便捷高效的 Keras 与 Estimators、训练又会有 Eager 模式和 Autograph 新特性。最后保存的模型还能通过不同的模块部署到云、移动端和网页等等。

基于这些整体设计,TF 2.0 也在快速成长。工程总监 Rajat Monga 随后宣布,TensorFlow 2.0 Alpha 版今天发布,RC 版将于今年第二季度发布。

TensorFlow 2.0 Alpha 版新特性

TensorFlow 2.0 的特性主要体现在三方面,即易用性、简洁性与灵活性。其中易用性主要体现在使用 tf.keras 作为高级 API,且将 Eager execution 作为默认模式。如下所示在 2.0 中定义加法运算不再返回节点属性,而是直接返回运算值:

TensorFlow 一直有很多庞大而冗余的 API 函数,尤其是 contrib 模块里。但在 TF 2.0 中,开发团队做了大量工作来移除重复的 API 函数,并重新组织它们。

此外,tf.contrib 将从核心 TensorFlow 存储库和构建过程中移除。TensorFlow 的 contrib 模块已经超出了单个存储库可以维护和支持的范围。较大的项目最好单独维护,而较小的扩展将逐渐移至核心 TensorFlow 代码。

尽管 TF 2.0 更关注使用便捷性,但这并不表明会牺牲灵活性。它同样提供完全的底层 API,同样能通过 tf.raw_ops 访问内部 OP。

此外,这些特性听起来很美好,但 TF 2.0 的向下兼容性同样十分重要。TF 2.0 将增加兼容性模块 tf.compat.v1,以及提供升级 1.X 代码的脚本。在我们使用 pip 安装 TensorFlow 2.0 时,系统会自动添加 tf_upgrade_v2 脚本,它可将现有的 TensorFlow Python 代码转换为 TensorFlow 2.0 代码。

如下所示在升级代码时会自动将 1.X 的 API 换为新的 API,如果 TF2.0 没有对等的 API,那么还能调用 tf.compat.v1 使用 1.X 的兼容 OP。因为 tensorflow.compat.v1 在 TensorFlow 2.x 的时间线内将长期得到维护,我们用 TensorFlow 1.x 编写的代码也能保持功能。

Eager execution

可能 TensorFlow 2.0 最明显的改变就是将 Eager execution 作为默认优先模式。这表明任何运算在调用后就会立即运行,我们不再需要预先定义静态图,再通过「tf.Session.run()」执行图的各个部分。

a = tf.constant([1, 2])
b = tf.constant([3, 4])

print(a + b)
# returns: tf.Tensor([4 6], shape=(2,), dtype=int32)

此外,Eager execution 还有一个很重要的新特性,即 tf.function 注释可以将 Python 程序转换成 TensorFlow 计算图,所有我们熟悉的 Python 控制流和内置函数等都可以转化为 TensorFlow 计算图。

这个过程保留了 TensorFlow1.x 基于静态计算图执行的所有优点:性能优化、远程执行,以及序列化、导出和部署的能力,同时增加了用简单 Python 表达程序的灵活性和易用性。因此总体而言,Eager execution 将是 2.0 的核心功能,它会使 TensorFlow 更容易学习和应用。

TF 2.0 当然是 Dev Summit 中的重头戏,但经过一年,很多模块与功能都走向了成熟,其中就包含 TensorFlow.js

TensorFlow.js 1.0

2018 年,谷歌发布了 TensorFlow.js,一个在浏览器、节点和其他平台中使用 JS 建立、部署机器学习模型的库。自发布以来,TensorFlow.js 被大量采用,截至目前该库已被下载 30 万次,Github 星标数量超过 1 万,项目贡献者超过 100 个。

今日,TensorFlow.js 1.0 版本发布,在先前版本的基础上做了许多改进,也添加了许多新特征。1.0 版本包含一个面向图像、文本、语音等常见机器学习任务的现成模型库。此外,TensorFlow.js 1.0 还添加了运行 JS 的更多平台,例如桌面 app、移动端本地的平台等。在性能上,该版本也有极大的改进,例如相比于去年,在浏览器中 MobileNet 的推断速度快了 8 倍。

TensorFlow.js 1.0 版本项目地址:https://github.com/tensorflow/tfjs/releases

从研究到产品、从服务器端到移动端,TensorFlow 已经成熟为了一个全面的生态系统

在 TF 2.0 和 TF.js 之外,现场还介绍了 TensorFlow 新网站,从网页中我们也可以看到谷歌将 TensorFlow 定位为端到端的开源机器学习平台,它添加了更多文档、示例和工具。

不过尴尬的是,直播过程中,小编发现 TensorFlow 新网站 404 了……

TensorFlow 家族新成员

TensorFlow Federated:针对分散式数据

此外,TensorFlow 还发布了开源框架 TensorFlow Federated(TFF),它适用于分散式数据(decentralized data)上执行机器学习和其他计算。TFF 旨在促进联合学习(Federated Learning,FL)的开放性研究和实验,联合学习是一种机器学习方法,可在多个客户端上训练共享的全局模型,同时在本地保存训练数据。例如,FL 曾被用于训练手机键盘的预测模型,同时不将敏感输入数据加载到服务器上。

TensorFlow Federated 让开发者能够展示和模拟联合学习系统。如图所示,每部手机在本地训练模型 (A)。它们的更新会汇总到一起 (B),形成一个改进后的共享模型 (C)。

TFF 可使开发者在自己的模型和数据上模拟使用联邦学习算法,促进对新算法的实验。TFF 提供的构建块还可用于实现非学习计算。TFF 的接口由两个层组成:Federated Learning (FL) API 和 Federated Core (FC) API。FC API 支持针对分散式数据集的各种计算的表达。

TensorFlow Privacy 开源库

TensorFlow Privacy 是 TensorFlow 今天发布的另一个开源库,不仅能让开发者在保护隐私的情况下训练机器学习模型,也能让研究者在保护隐私的情况下推进机器学习的前沿研究。

现代机器学习越来越多地被应用到新技术和用户体验中,很多应用需要基于敏感数据(如个人照片或邮件)来训练。完美情况下,训练模型的参数应该编码一般模式,而不是特定训练样本的事实。差分隐私(differential privacy)技术可用于保护隐私数据,当模型基于用户数据训练时,差分隐私技术可以提供强数学保证,确保模型不学习或记住任意用户的数据细节。对于深度学习来说,更要添加额外的保障。

谷歌近年来开展机器学习差分隐私方面的基础研究,以及开发实用的差分隐私机制。今天,谷歌正式发布 TensorFlow Privacy。它不要求用户具备隐私及其底层机制方面的专业知识,使用标准 TensorFlow 框架的用户在使用 TensorFlow Privacy 时也无需对模型架构、训练步骤做任何更改,只需简单地修改几行代码,并调整与隐私相关的超参数

Coral 开发板和 USB 加速器

比较有趣的是,今日谷歌还发布两个全新的硬件产品:Coral 开发板和 USB 加速器。

首先介绍下 Coral。Coral 是一个构建智能设备的平台,它提供完全本地的 AI 工具箱,包括硬件组件、软件工具,以及帮助你创造、训练、运行神经网络的模块。

Coral 的首个硬件组件就是之前谷歌发布的 ASIC——Edge TPU,它能为低功率设备提供极高的机器学习推理性能。例如,它能以高能效方式在 100+ 的 fps 下执行 MobileNet v2 这样的视觉模型。

Coral 摄像模块、开发板和 USB 加速器

作为全新的开发产品,Coral 开发板是个完全集成的系统,它被设计成构建在载板上的系统模块(SoM)。SoM 把强大的 NXP iMX8M SoC 与谷歌的 Edge TPU 协处理器(包括 Wi-Fi、蓝牙、RAM 和 eMMC 存储)融合在了一起。为了让计算机视觉应用原型更简单,谷歌还提供了一个摄像头连接开发板与 MIPI 接口。

为了把 Edge TPU 加入到已有的设计中,Coral USB 加速器允许通过 USB2.0、3.0 接口轻松接入到任何 Linux 系统中,之后谷歌还会添加 PCIe 版本。

价格方面,Coral 开发板售价为 149.99 美元,Coral USB 加速器售价为 74.99 美元。

小结

以上就是一年一度的谷歌 TensorFlow 开发者大会上的全新发布了。总体而言,我们看到了 TensorFlow 在设计上的重大革新。虽然今日没能看到 TensorFlow 2.0 的正式发布,但这些新特征是否让你对它有所期待呢?

最后提一句,小编中意 PyTorch(差点与另一小编打起来)。

来自另一小编的反对

参考文章:

https://medium.com/tensorflow/introducing-tensorflow-privacy-learning-with-differential-privacy-for-training-data-b143c5e801b6

https://medium.com/tensorflow/test-drive-tensorflow-2-0-alpha-b6dd1e522b01

https://developers.googleblog.com/2019/03/introducing-coral-our-platform-for.html

工程谷歌深度学习深度学习框架TensorFlow
3
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

超参数技术

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

TensorFlow技术

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

MobileNets技术

MobileNet是专用于移动和嵌入式视觉应用的卷积神经网络,是基于一个流线型的架构,它使用深度可分离的卷积来构建轻量级的深层神经网络。通过引入两个简单的全局超参数,MobileNet在延迟度和准确度之间有效地进行平衡。MobileNets在广泛的应用场景中有效,包括物体检测、细粒度分类、人脸属性和大规模地理定位。

百度机构

百度(纳斯达克:BIDU),全球最大的中文搜索引擎、最大的中文网站。1999年底,身在美国硅谷的李彦宏看到了中国互联网及中文搜索引擎服务的巨大发展潜力,抱着技术改变世界的梦想,他毅然辞掉硅谷的高薪工作,携搜索引擎专利技术,于 2000年1月1日在中关村创建了百度公司。 “百度”二字,来自于八百年前南宋词人辛弃疾的一句词:众里寻他千百度。这句话描述了词人对理想的执着追求。 百度拥有数万名研发工程师,这是中国乃至全球最为优秀的技术团队。这支队伍掌握着世界上最为先进的搜索引擎技术,使百度成为中国掌握世界尖端科学核心技术的中国高科技企业,也使中国成为美国、俄罗斯、和韩国之外,全球仅有的4个拥有搜索引擎核心技术的国家之一。

http://home.baidu.com/
推荐文章
暂无评论
暂无评论~