内容简介:刚刚,谷歌在 Tensorflow Developer Summit 2019 大会上发布TensorFlow2.0 Alpha 版。虽然在此之前关于TensorFlow2.0 的众多更新已经放出,但作为当前最为流行的深度学习框架,2.0 Alpha 版的正式发布依旧引人关注。此外,今日谷歌还开源了新的框架与库,发布了两款有趣的开发硬件。还换了 Logo~
刚刚,谷歌在 Tensorflow Developer Summit 2019 大会上发布TensorFlow2.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 的压力,TensorFlow2.0 有了众多改变,例如 2018 年 9 月份在上海谷歌开发者大会上,机器之心了解到一个重大改变是将会把 Eager Execution 变为TensorFlow默认的执行模式。2019 年 1 月份,谷歌上线了TensorFlow2.0「开发者预览版」,让开发者们可以尝试使用。
下图展示了近几年TensorFlow的版本更新。但今天,TensorFlow已经成熟为一个完全端到端的生态系统,所以今天发布的TensorFlow2.0 标志着一个新时代的开始。
发布 TF 2.0 Alpha 版
TensorFlow作为下载量最大的深度学习框架,过去收到了大量的反馈。据介绍,TensorFlow用户希望能够有更简单的 API、减少冗余、改进文档与示例。因此,TensorFlow2.0 在设计上注重以下三点:简单、强大、可扩展。
在简单方面,TensorFlow2.0 提供更简化的 API、注重 Keras 、结合了 Eager Execution 。通过扩展到 exaflops 级别,TensorFlow2.0 变得更加强大,在同样的稳健性与性能下效率会更高。
TensorFlow在过去的开发中已经构建了非常多的模块或组件,而TensorFlow2.0 则需要对整体工作流组件做极大的优化。下图展示了TensorFlow的高层设计架构,这些组件和特征将被打包成一个综合平台,从而支持从训练到部署的整个机器学习工作流程。
下图展示了 Tensorflow2.0 的强大 API 组件在整个工作流的适配,其中数据导入与处理可调用 tf.data、模型构建可以用便捷高效的 Keras 与 Estimators、训练又会有 Eager 模式和 Autograph 新特性。最后保存的模型还能通过不同的模块部署到云、移动端和网页等等。
基于这些整体设计,TF 2.0 也在快速成长。工程总监 Rajat Monga 随后宣布,TensorFlow2.0 Alpha 版今天发布,RC 版将于今年第二季度发布。
TensorFlow2.0 Alpha 版新特性
TensorFlow2.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 安装TensorFlow2.0 时,系统会自动添加 tf_upgrade_v2 脚本,它可将现有的TensorFlowPython 代码转换为TensorFlow2.0 代码。
如下所示在升级代码时会自动将 1.X 的 API 换为新的 API,如果 TF2.0 没有对等的 API,那么还能调用 tf.compat.v1 使用 1.X 的兼容 OP。因为 tensorflow.compat.v1 在TensorFlow2.x 的时间线内将长期得到维护,我们用TensorFlow1.x 编写的代码也能保持功能。
Eager execution
可能TensorFlow2.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家族新成员
TensorFlowFederated:针对分散式数据
此外,TensorFlow还发布了开源框架TensorFlowFederated(TFF),它适用于分散式数据(decentralized data)上执行机器学习和其他计算。TFF 旨在促进联合学习(Federated Learning,FL)的开放性研究和实验,联合学习是一种机器学习方法,可在多个客户端上训练共享的全局模型,同时在本地保存训练数据。例如,FL 曾被用于训练手机键盘的预测模型,同时不将敏感输入数据加载到服务器上。
-
TensorFlowFederated 链接: https://www.tensorflow.org/federated
-
TFF 代码库链接: https://github.com/tensorflow/federated
TensorFlowFederated 让开发者能够展示和模拟联合学习系统。如图所示,每部手机在本地训练模型 (A)。它们的更新会汇总到一起 (B),形成一个改进后的共享模型 (C)。
TFF 可使开发者在自己的模型和数据上模拟使用联邦学习算法,促进对新算法的实验。TFF 提供的构建块还可用于实现非学习计算。TFF 的接口由两个层组成:Federated Learning (FL) API 和 Federated Core (FC) API。FC API 支持针对分散式数据集的各种计算的表达。
-
Federated Learning (FL) API 链接: https://www.tensorflow.org/federated/federated_learning
-
Federated Core (FC) API 链接: https://www.tensorflow.org/federated/federated_core
TensorFlowPrivacy 开源库
TensorFlowPrivacy 是TensorFlow今天发布的另一个开源库,不仅能让开发者在保护隐私的情况下训练机器学习模型,也能让研究者在保护隐私的情况下推进机器学习的前沿研究。
-
Github 地址: https://github.com/tensorflow/privacy
现代机器学习越来越多地被应用到新技术和用户体验中,很多应用需要基于敏感数据(如个人照片或邮件)来训练。完美情况下,训练模型的参数应该编码一般模式,而不是特定训练样本的事实。差分隐私(differential privacy)技术可用于保护隐私数据,当模型基于用户数据训练时,差分隐私技术可以提供强数学保证,确保模型不学习或记住任意用户的数据细节。对于深度学习来说,更要添加额外的保障。
谷歌近年来开展机器学习差分隐私方面的基础研究,以及开发实用的差分隐私机制。今天,谷歌正式发布TensorFlowPrivacy。它不要求用户具备隐私及其底层机制方面的专业知识,使用标准TensorFlow框架的用户在使用TensorFlowPrivacy 时也无需对模型架构、训练步骤做任何更改,只需简单地修改几行代码,并调整与隐私相关的超参数。
Coral 开发板和 USB 加速器
比较有趣的是,今日谷歌还发布两个全新的硬件产品:Coral 开发板和 USB 加速器。
首先介绍下 Coral。Coral 是一个构建智能设备的平台,它提供完全本地的 AI 工具箱,包括硬件组件、软件工具,以及帮助你创造、训练、运行神经网络的模块。
Coral 的首个硬件组件就是之前谷歌发布的 ASIC——Edge TPU,它能为低功率设备提供极高的机器学习推理性能。例如,它能以高能效方式在 100+ 的 fps 下执行MobileNetv2 这样的视觉模型。
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在设计上的重大革新。虽然今日没能看到TensorFlow2.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
以上所述就是小编给大家介绍的《重磅发布2.0 Alpha版,TensorFlow新定位:端到端开源机器学习平台》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 360 重磅开源性能监控平台 ArgusAPM
- 重磅!GitHub 官方开源新命令行工具
- 重磅消息:微软 Service Fabric 正式开源
- 重磅!Java 性能监控调试工具 JMC 宣布开源
- 阿里重磅开源首个 Serverless 开发者平台
- 重磅!GitHub 开源负载均衡组件 GLB Director
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
UNIX系统编程: 通信、并发与线程
【美】Kay Robbins、Steve Robbins / 师蓉 / 电子工业出版社 / 2018-5 / 198
《UNIX系统编程: 通信、并发与线程》是一本基于最新UNIX标准的完备的参考书,对UNIX编程的要点进行了清晰易懂的介绍,从一些用于说明如何使用系统调用的短小代码段开始,逐渐过渡到能帮助读者扩展自己技能水平的实际项目中。《UNIX系统编程: 通信、并发与线程》中对通信、并发和线程问题进行了深入探讨,对复杂的概念(如信号和并发)进行了全面且清晰的解释,还覆盖了与文件、信号、信号量、POSIX线程和......一起来看看 《UNIX系统编程: 通信、并发与线程》 这本书的介绍吧!
JSON 在线解析
在线 JSON 格式化工具
Base64 编码/解码
Base64 编码/解码