0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

TensorFlow 2.4来了 带来了多项新特性和功能改进

新机器视觉 来源:新机器视觉 作者:机器之心 2020-12-26 11:38 次阅读

谷歌正式发布了 TensorFlow 2.4,带来了多项新特性和功能改进。

TensorFlow 2.4 的更新包括对于分布式训练和混合精度的新功能支持,对 NumPy API 子集的试验性支持以及一些用于监测性能瓶颈的新工具。 根据 TensorFlow 官方博客,本次更新的主要内容整理如下:

tf.distribute 中的新功能

参数服务器策略 在 TensorFlow 2.4 中,tf.distribute 模块引入了对使用 ParameterServerStrategy 和自定义训练循环进行模型异步训练的试验性支持。和 MultiWorkerMirroredStrategy 类似,ParameterServerStrategy 是一种多工作器(multi-worker)数据并行策略,但梯度更新是异步的。 参数服务器训练集群由工作服务器和参数服务器组成。变量在参数服务器上创建,然后在每个步骤中由工作器读取和更新。

变量的读取和更新在工作器之间是独立进行的,不存在任何同步。由于工作器彼此不依赖,因此该策略具有工作器容错的优势,如果使用可抢占 VM,该策略将很有用。 多工作器镜像策略 MultiWorkerMirroredStrategy 已经脱离试验阶段,成为稳定的 API。像单工作器的 MirroredStrategy 一样,MultiWorkerMirroredStrategy 通过同步数据并行实现分布式训练,顾名思义,借助 MultiWorkerMirroredStrategy 可以在多台机器上进行训练,每台机器都可能具有多个 GPU

Keras 更新

混合精度 在 TensorFlow 2.4 中,Keras 混合精度 API 已经脱离试验阶段,成为稳定的 API。大多数 TensorFlow 模型使用 float32 dtype,但现在有些低精度数据类型占用的内存更少,比如 float16。混合精度指的是在同一模型中使用 16 位和 32 位浮点数以进行更快的训练。这一 API 可将模型性能在 GPU 上提高到 3 倍,在 TPU 上提高 60%。

要使用混合精度 API,必须使用 Keras 层和优化器,但不一定需要使用其他 Keras 类。 优化器 本次更新包括重构 tf.keras.optimizers.Optimizer 类,让 model.fit 的用户和自定义训练循环的用户能够编写可与任何优化器一起使用的训练代码。所有内置 tf.keras.optimizer.Optimizer 子类都可接受 gradient_transformers 和 gradient_aggregator 参数,轻松定义自定义梯度变换。 重构之后,使用者可以在编写自定义训练循环时直接将损失张量传递给 Optimizer.minimize:

pIYBAF_msJqARmysAABBsgUGUmE079.jpg

这些更新的目标是让 Model.fit 和自定义训练循环与优化器细节更加不相关,从而让使用者无需修改即可编写出与任何优化器共同使用的训练代码。 最后,TensorFlow 2.4 的更新还包括 Keras Functional API 内部的重构,改善了函数式模型构造所产生的内存消耗并简化了触发逻辑。这种重构可以保证 TensorFlowOpLayers 的行为可预测,并且可以使用 CompositeTensor 类型签名(type signature)。

tf.experimental.numpy

TensorFlow 2.4 引入了对 NumPy API 子集的试验性支持。该模块可以运行由 TensorFlow 加速的 NumPy 代码,由于这一 API 是基于 TensorFlow 构建的,因此可与 TensorFlow 无缝衔接,允许访问所有 TensorFlow API 并通过编译和自动矢量化提供优化后的运行。 例如,TensorFlow ND 数组可以与 NumPy 函数互通,类似地,TensorFlow NumPy 函数可以接受包括 tf.Tensor 和 np.ndarray 在内的不同类型输入。

o4YBAF_msK-AD0uIAABwAa2nu7U191.jpg

新的性能分析工具

TensorFlow Profiler 是度量 TensorFlow 模型的训练性能和资源消耗情况的工具,用来诊断性能瓶颈,最终加快训练速度。 此前,TensorFlow Profiler 支持多 GPU 单主机训练。到了 2.4 版本,使用者可以测试 MultiWorkerMirroredStrategy 的训练工作了,比如使用采样模式 API 按需配置,并连接到 MultiWorkerMirroredStrategy 工作器正在使用的同一服务器。


另外,你可以通过向捕获配置文件工具提供工作器地址来使用 TensorBoard 配置文件插件。配置之后,你可以使用新的 Pod Viewer tool 来选择训练步骤,并查看所有工作器上该步骤的 step-time 的细分。 TFLite Profiler TFLite Profiler 则支持在 Android 中跟踪 TFLite 内部信息,以识别性能瓶颈。

GPU 支持

TensorFlow 2.4 与 CUDA 11 和 cuDNN 8 配合运行,支持最新发布的英伟达安培架构 GPU,对于 CUDA 11 的新特性,可以参考英伟达开发者博客: https://developer.nvidia.com/blog/cuda-11-features-revealed/ 在新版本中,默认情况下会启用安培 GPU 的新特性——对 TensorFloat-32 的支持。TensorFloat-32 又简称为 TF32,是英伟达 Ampere GPU 的一种数学精度模式,可导致某些 float32 运算(如矩阵乘法和卷积)在安培架构 GPU 上运行得更快,但精度略有降低。 若想更深入了解,可参阅文档: https://www.tensorflow.org/api_docs/python/tf/config/experimental/enable_tensor_float_32_execution

责任编辑:xj

原文标题:TensorFlow 2.4来了:上线对分布式训练和混合精度的新功能支持

文章出处:【微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据集
    +关注

    关注

    4

    文章

    1178

    浏览量

    24349
  • tensorflow
    +关注

    关注

    13

    文章

    313

    浏览量

    60242

原文标题:TensorFlow 2.4来了:上线对分布式训练和混合精度的新功能支持

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    来看看蓝牙 5.4 版带来了一些新的有趣功能

    Bluetooth SIG 的 Bluetooth® v5.4 核心规范为支持 Bluetooth 的物联网设备带来了多项优势,重点是增强了通信能力、安全性和效率。这些改进尤其适用于涉及大量设备
    的头像 发表于 04-23 14:52 178次阅读
    来看看蓝牙 5.4 版<b class='flag-5'>带来了</b>一些新的有趣<b class='flag-5'>功能</b>

    基于TensorFlow和Keras的图像识别

    ,让我们先花点时间来了解一些术语。TensorFlow/KerasTensorFlow是GoogleBrain团队创建的一个Python开源库,它包含许多算法和模型
    的头像 发表于 01-13 08:27 375次阅读
    基于<b class='flag-5'>TensorFlow</b>和Keras的图像识别

    WiFi6工业网关能为工业物联网带来哪些改进

    WiFi 6( 802.11ax)比其前身WiFi 5(802.11ac)带来了多项改进,例如更快的通信速率、更大的带宽容量、在多设备连入时更稳定的性能、更大的链接范围、增强的安全性以及更好地支持物联网工作负载等,本篇就为大家简
    的头像 发表于 01-08 17:16 580次阅读
    WiFi6工业网关能为工业物联网<b class='flag-5'>带来</b>哪些<b class='flag-5'>改进</b>?

    FPGA为嵌入式设计带来了强大的功能与灵活性

    尽管 FPGA 为嵌入式设计带来了强大的功能与灵活性,但额外的开发流程也给设计工作增加了新的复杂性和限制问题。整合传统的硬件-FPGA-软件设计流程并充分利用 FPGA 的可再编程功能是我们
    的头像 发表于 12-07 09:35 203次阅读

    GNSS技术为自动驾驶带来了什么?

    GNSS技术为自动驾驶带来了什么?
    的头像 发表于 12-04 17:44 271次阅读

    Sublime Text 4 Build 4169文本编辑器的新功能

    Sublime Text 4 Build 4169 带来了改进的语法高亮、易于选择字体、增量索引排序以及其他功能
    的头像 发表于 12-03 11:12 636次阅读
    Sublime Text 4 Build 4169文本编辑器的新<b class='flag-5'>功能</b>

    直驱技术为电机带来了哪些特性

    电子发烧友网报道(文/李宁远)电机,一直都是机械设备的动力来源,是先进制造业核心设备,而电机控制技术是电机设备的核心技术。传统的机械设备,需要电机工作时通过传动装置调整力矩,容易产生背隙、机械损耗和令人烦扰的噪音,这些因素会降低机器性能,增加机器尺寸和重量。   直驱技术的出现改变了这一缺点,不管是有框架直驱旋转电机(DDR)、模块化直驱旋转电机(CDDR)、无框直驱电机(KBM、TBM)还是直驱直线电机DDL,直驱伺服系统
    的头像 发表于 12-01 00:22 1980次阅读

    红外技术为AIoT领域带来了哪些变革?

    AIoT(人工智能物联网)作为一个融合了人工智能和物联网技术的新兴领域,引起了广泛的关注。最近几年,红外技术在AIoT中的应用越来越显著。这种融合为我们带来了更智能、更高效的解决方案,并在多个领域
    的头像 发表于 11-03 17:04 630次阅读
    红外技术为AIoT领域<b class='flag-5'>带来了</b>哪些变革?

    BLE5.2为蓝牙带来了哪些变化?

    。BLE5.2简介图1BLE5.22020年国际消费电子展上,蓝牙SIG推出了最新版本的BLE5.2,增加了多项功能,这三项功能是:增强属性协议(EATT)、功率控制(
    的头像 发表于 10-26 08:25 542次阅读
    BLE5.2为蓝牙<b class='flag-5'>带来了</b>哪些变化?

    锂电池快充带来了什么风险?锂电池快充的风险有哪些?

    锂电池快充技术问题,锂电池快充带来了什么风险?在迟迟发明不出来更好替代品的情况下,快充成为了临时解决方案。
    发表于 10-20 17:20 358次阅读

    TouchGFX中Callback模板实现原理

    的,借助 C++的模板特性,TouchGFX 定义一组Callback 模板,基于此模板实现上述响应的功能
    发表于 09-11 06:16

    核废水来了,我们能做什么?

    核废水来了,我们能做什么?
    的头像 发表于 09-08 08:26 476次阅读
    核废水<b class='flag-5'>来了</b>,我们能做什么?

    TouchGFX中Callback模板实现原理

    TouchGFX为MCU带来了炫彩丰富的GUI界面,使得基于STM32芯片的人机界面开发非常方便而友好,TouchGFX是用C++编写的,借助C++的模板特性,定义一组Callback模板,基于此模板
    发表于 09-08 08:16

    TensorFlow将神经网络量化为8位

    随着TensorFlow Lite的推出,TensorFlow已经更新量化技术和工具,您可以使用这些技术和工具提高网络性能。 本指南向您展示如何量化网络,使其在训练过程中使用8位数
    发表于 08-10 06:01

    设备仿真模拟软件 QEMU 8.0 发布:改进对 ARM / RISC-V 架构支持

    和 HPPA 平台带来各种新功能改进。 QEMU (Quick Emulator)是业界主流的设备仿真模拟软件之一,可以在一种架构(如 X86 PC)的物理机上运行支持其它架构的操作系统和程序,从而
    发表于 05-05 09:48