HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

谷歌官方解读:TensorFlow 2.0 哪些新特性值得关注?

  • 2019-01-16
  • 本文字数:3253 字

    阅读完需:约 11 分钟

谷歌官方解读:TensorFlow 2.0哪些新特性值得关注?

2018 年 11 月,TensorFlow 在庆祝 3 岁生日时回顾了其多年来增加的功能。 对于即将发布的 TensorFlow 2.0,TensorFlow 团队感到非常兴奋。相比于旧版本,这个被团队视为另一重要里程碑的版本又新增了哪些功能呢?


TensorFlow 2.0 将专注于简单性和易用性,具体更新包括:


  • 使用 Keras 和 eager execution 轻松建模。

  • 在任何平台生产中部署强大的模型。

  • 强大的研究实验。

  • 清理弃用的 API,减少重复,简化 API。


在过去几年中,我们为 TensorFlow 添加了许多组件。TensorFlow 2.0 将这些组件打包成一个综合平台,支持从训练到部署的整个机器学习工作流程。TensorFlow 2.0 新架构示意图如下:



(注意:虽然此图的训练部分侧重于 Python API,但 TensorFlow.js 也支持训练模型。TensorFlow 2.0 还对其他语言有不同程度的支持,包括 Swift、R 和 Julia。)

更简单地创建模型

在最近的博客文章中,我们宣布 Keras 是一个用户友好的机器学习 API 标准,并将成为用于构建和训练模型最重要的高级 API。Keras API 让你可以轻松开始使用 TensorFlow。重要的是,Keras 提供了一些模型创建 API(顺序、功能和子类),让用户可以为项目选择合适的抽象级别。TensorFlow 的实现增强包括 eager execution、快速迭代和直接调试,以及用于构建可扩展输入管道的 tf.data。


以下为示例工作流程(在接下来的几个月中,我们将努力更新链接的中指南):


  1. 使用 tf.data 加载数据;使用由 tf.data 创建的输入管道读取训练数据;使用 tf.feature_column 描述特征特点,例如分段和特征交叉;支持来自内存数据的便捷输入(例如,NumPy)。

  2. 使用 tf.keras 或预先做好的评估器构建、训练和验证你的模型。 Keras 与 TensorFlow 的其余部分紧密集成,因此可以随时访问 TensorFlow 的功能。还可以直接使用一组标准的打包模型(例如,线性或逻辑回归、梯度提升树、随机森林,用 tf.estimator API 实现)。如果你不想从头开始训练模型,不久之后你就可以用迁移学习来训练使用 TensorFlow Hub 模块的 Keras 或评估器模型。

  3. 运行 eager execution 和调试,然后使用 tf.function(图形)。默认情况下,TensorFlow 2.0 以 eager execution 的方式运行,以便于使用和调试。此外,tf.function 注释将你的 Python 程序完全透明地转换为 TensorFlow 图形。此过程保留了 1.x TensorFlow 基于图形运行的所有优点:在性能优化、远程运行和轻松序列化、导出和部署的同时,使用简单的 Python 让程序表达更加灵活易用。

  4. 使用分布策略进行分布式训练。对于大型机器学习训练任务,分布式策略 API 可以轻松地在不同硬件配置上分发和训练模型,而无需更改模型定义。由于 TensorFlow 支持各种硬件加速器,如 CPU、GPU 和 TPU,因此你可以将训练工作负载分配到单节点/多加速器以及多节点/多加速器配置(包括 TPU Pod)。此 API 支持各种群集配置,还提供在本地或云环境中部署 Kubernetes 群集训练的模板。

  5. 导出到 SavedModel。 TensorFlow 将 SavedModel 标准化并作为 TensorFlow Serving、TensorFlow Lite、TensorFlow.js、TensorFlow Hub 等的交换格式。

在任何平台生产中部署模型

TensorFlow 一直以来都可以直接用于生产。无论是在服务器、边缘设备还是 Web 上,TensorFlow 都可以让你轻松地训练和部署模型,无论使用何种语言或平台。在 TensorFlow 2.0 中,我们通过标准化交换格式和对齐 API 来提高跨平台和组件的兼容性和匹配性。


训练并保存模型后,你可以直接在应用程序中运行,也可以使用以下任意一个部署库为其提供服务:


  • TensorFlow Serving:TensorFlow 库,可以通过 HTTP / REST 或 gRPC /协议缓冲区提供模型。

  • TensorFlow Lite:TensorFlow 针对移动和嵌入式设备的轻量级解决方案,提供了在 Android、iOS 和嵌入式系统(如 Raspberry Pi 和 Edge TPU)上部署模型的功能。

  • TensorFlow.js:让开发者可以在 JavaScript 环境中部署模型,例如通过 Node.js 在 Web 浏览器或服务器端部署模型。TensorFlow.js 还支持使用类似 Keras 的 API 在 JavaScript 中定义模型并直接在 Web 浏览器中进行训练。


TensorFlow 还支持其他语言(其中一些由更广泛的社区维护),包括 C、Java、Go、C#、Rust、Julia、R 等。

强大的研究实验

TensorFlow 可以轻松地把新创意转换为代码。TensorFlow 2.0 集成了许多功能,可以在不牺牲速度或性能的情况下定义和训练最先进的模型:


  • Keras Functional API 和 Model Subclassing API:允许创建复杂的拓扑,包括使用残差层、自定义多输入/输出模型以及命令式写入的前向传递。

  • 自定义训练逻辑:使用 tf.GradientTape 和 tf.custom_gradient 对梯度计算进行细粒度控制。

  • 为了更灵活和易于控制,旧版本的 TensorFlow API 可以一直继续使用,并与更高级别的抽象结合,以实现完全可定制的逻辑。


TensorFlow 2.0 新增了一些功能,让研究人员和高级用户可以进行实验,使用丰富的扩展,如 Ragged Tensors、TensorFlow Probability、Tensor2Tensor 等。


除了这些功能外,TensorFlow 还提供了让原型设计和调试更简单的 eager execution,分发策略 API 和 AutoGraph,可以进行大规模训练并支持 TPU,使 TensorFlow 2.0 成为一个易于使用、可定制、高度可扩展,可以运行并将最先进机器学习研究转化为实际生产的平台。

TensorFlow 1.x 和 2.0 之间的差异

自从首次开源以来, TensorFlow 已经有许多版本和 API 迭代。TensorFlow 2.0 可以基于语义版本控制(semantic versioning)清理和模块化平台。


以下是一些较大的变化:



此外,tf.contrib 将从核心 TensorFlow 存储库和构建过程中删除。TensorFlow 的 contrib 模块不断增长,单个存储库已经难以维护和支持。较大的项目可以更好地进行单独维护,而较小的扩展将逐渐转向核心 TensorFlow 代码。我们还创建了一个特殊族群(SIG,special interest group)来维护并进一步开发一些更重要的贡献项目。如果你有兴趣参与,请参与此 RFC:https://github.com/tensorflow/community/pull/37

兼容性和连续性

为了简化 TensorFlow 2.0 迁移,我们提供了一个转换工具,它可以更新 TensorFlow 1.x Python 代码,以兼容 TensorFlow 2.0 API,或者标记代码无法自动转换的情况。


并非所有更改都可以完全自动完成。例如,某些已弃用的 API 没有替换项。这就是我们引入 tensorflow.compat.v1 兼容性模块的原因,该模块保留了对完整 TensorFlow 1.x API(不包括 tf.contrib)的支持。该模块将在 TensorFlow 2.x 的生命周期内运行,让使用 TensorFlow 1.x 编写的代码继续运作。


此外,SavedModels 或存储的 GraphDefs 将向后兼容。使用 1.x 版本保存的 SavedModels 仍可以在 2.x 中加载和执行。但是,2.0 中的变更可能会导致原始检查点中的变量名称更改,因此,无法保证 2.0 之前版本的检查点正常工作。有关详细信息,请参阅 Effective TensorFlow 2.0 指南 https://github.com/tensorflow/docs/blob/master/site/en/r2/guide/effective_tf2.md


我们相信,TensorFlow 2.0 将为社区带来巨大的利益,并投入大量精力让转换变得尽可能简单。但是,我们也认识到,迁移当前的管道需要时间。因此,我们将在最后的 1.x 版本中提供 12 个月的安全补丁,以便现有用户有充足的时间进行过渡。

TensorFlow 2.0 时间表

TensorFlow 2.0 将于今年年初发布公开预览版。但为什么要等呢?现在,你已经可以通过使用 tf.keras 和 eager execution,预打包模型和部署库来开发 TensorFlow 2.0。分发策略 API 目前已部分可用。


我们对 TensorFlow 2.0 以及即将发生的变化感到非常兴奋。TensorFlow 已经从一个深度学习软件库开发,成长为适用于所有类型机器学习的整个生态系统。TensorFlow 2.0 将变得简单易用,适用于所有平台上的所有用户。


参考链接:


https://medium.com/tensorflow/whats-coming-in-tensorflow-2-0-d3663832e9b8


极客时间《TensorFlow快速入门与实战》专栏


2019-01-16 07:008904
用户头像

发布了 98 篇内容, 共 64.2 次阅读, 收获喜欢 285 次。

关注

评论

发布
暂无评论
发现更多内容

电子签合同有效吗?符合法规的8大电子签合同系统

易成研发中心

电子签名软件 电子合同软件

Go语言中进行MySQL预处理和SQL注入防护

左诗右码

Go 语言

蓝易云 - Ubuntu下运行QEMU模拟riscv64跑Debian

百度搜索:蓝易云

ubuntu 运维 云服务器 qemu Debian

蓝易云 - 在PHP8中统计数组元素个数-PHP8知识详解

百度搜索:蓝易云

php Linux 运维 云服务器 PHP8

ICE.AI战略扩展亚太市场,创新交易模式及平台全面升级

科技热闻

先锋鹏城,极速领航!深圳电信5G-A场景体验尊享权益正式发布

脑极体

通信

蓝易云 - Ubuntu22.04安装Mongodb7.0

百度搜索:蓝易云

mongodb 云计算 Linux ubuntu 运维

蓝易云 - ssh登录22号端口拒绝连接Ubuntu?

百度搜索:蓝易云

Linux 运维 Shell SSH 云服务器

K8s 如何设置容器 /dev/shm 控制共享内存大小

江湖十年

k8s k8s管理 #k8s K8s 多集群管理 Kubernetes Serverless

HGDD 荣耀开发者日丨沙龙北京站现场亮点回顾

荣耀开发者服务平台

行业趋势 开发者沙龙 应用上架 荣耀开发者服务平台 开发者激励计划

必读|Postgres 如何在磁盘上存储和索引数据?

小猿姐

数据库 postgresql 容器

ClueCon 2024:音视频开发者的技术盛会

声网

Match开辟双螺旋正增长模型,RFG与NFT天花板在哪儿?

石头财经

如何挑选文档管理软件:8款顶尖选择一览

爱吃小舅的鱼

文档管理 文档管理工具 文档管理系统

百万级Python讲师又一力作!Python编程轻松进阶,豆瓣评分8.1

我再BUG界嘎嘎乱杀

Python 编程 后端 开发语言

蓝易云 - 使用php获取时间今天、明天、昨天时间戳的详解

百度搜索:蓝易云

php 云计算 运维 云服务器 香港服务器

RFG与NFT天花板在哪儿?Match的双螺旋正增长模型是答案

股市老人

国内首个支持国产化信创的开源云原生平台

北京好雨科技有限公司

云原生 rainbond 企业号 8 月 PK 榜 国产化平台 信创国产化

【第2期】INFINI Easysearch 免费认证培训开放报名啦

极限实验室

easysearch 极限科技

轻量级的灰度&配置平台|得物技术

得物技术

架构 配置 稳定性 灰度 企业号2024年7月PK榜

绿电、DePIN+AI:塑造未来二十年金融体系的新兴基石

TechubNews

科大讯飞学习机t20和P30对比

妙龙

科大讯飞 学习机

【荣耀远航计划】应用市场·耀闪行动首发上线

荣耀开发者服务平台

honor 应用市场 开发者激励计划

专为小团队设计:顶尖需求管理软件8选

爱吃小舅的鱼

需求管理 需求管理工具

科大讯飞T20学生平板怎么样 科大讯飞T20参数

妙龙

科大讯飞 学习机

科大讯飞t20和c10 区别对比 评测

妙龙

科大讯飞 学习机

前端代码编辑神器:sublime text 4(Win&Mac)中文注册版

你的猪会飞吗

mac软件下载 Sublime Text 4 破解版 Sublime Text 4下载 Sublime Text 4注册版

专题 | IAM业界热度不减,2024市场持续井喷(三)

芯盾时代

身份安全 数字化 iam 统一身份认证 零信任模型

RFG与NFT天花板在哪儿?Match的双螺旋正增长模型是答案

BlockChain先知

鸿蒙 NEXT 应用开发训练营毕业啦(毕业总结)

SamGo

鸿蒙 训练营 HarmonyOS 移动端 鸿蒙系统

BTC/ETH/IPFS云算力质押挖矿系统开发详细指南

V\TG【ch3nguang】

云算力质押挖矿系统

谷歌官方解读:TensorFlow 2.0哪些新特性值得关注?_编程语言_TensorFlow团队_InfoQ精选文章