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

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

3天内不再提示

TensorFlow 2.4.0 候选版本主要功能改进

Tensorflowers 来源:TensorFlow 作者:TensorFlow 2020-11-26 09:29 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

主要功能改进

tf.distribution 通过tf.distribution.experimental.ParameterServerStrategy API 引入了对 Keras 模型异步训练实验性支持。更多细节请参见下文。

MultiWorkerMirroredStrategy不再是一个实验性 API,现在已进入稳定版本。针对命令执行失败和其他错误进行了修复。请查看具体教程,了解如何使用 Keras 进行多任务并行训练。

对 tf.experimental.numpy 的新模块进行了实验性支持,此 API 不仅与NumPy 兼容,更便于编写 TF 程序,可参阅详细指南了解更多信息,更多细节请参见下文。

针对 Ampere 架构的 GPU 添加了 TensorFlow-32(简称TF32) 的支持,这是一种基于 Nvidia Ampere 的GPU模式,默认情况下将启用。

Keras Functional API 的内部重构已经完成,这次重构提高了构建 Functional 模型的可靠性、稳定性和性能。

Keras 混合精度训练的 API tf.keras.mixed_precision 已稳定,不再为实验性支持。这允许在训练过程中使用 16 位浮点数格式,在 GPU 上的性能提升高达 3 倍,在 TPU 的提升也高达 60 %。

TF Profiler 现在支持使用采样模式 API ,对多个工作进程进行性能分析。

TFLite Profiler Android 版本现已推出。请参阅指南以了解更多信息。

TensorFlow pip 安装包现已使用 CUDA11 和 cuDNN 8.0.2构建。

重大改进

TF Core

C-API 的字符串张量的字节布局已被更新,已与 TF Core/C++ 匹配,即 tensorflow::tstring/TF_TString的连续数组。

C-API 函数 TF_StringDecode、TF_StringEncode 和 TF_StringEncodedSize 不再被使用,现已移除;关于 C 语言中的字符串访问/修改,请参见core/platform/ctstring.h。

tensorflow.python、tensorflow.core和tensorflow.compiler 模块现在被隐藏。这些模块不再是 TensorFlow 可访问 API 的一部分。

tf.raw_ops.Max 和 tf.raw_ops.Min 不再接受类型为tf.complex64 或 tf.complex128 的输入,因为这些操作对于复杂类型的行为没有被明确定义。

由于使用了 TensorFloat-32,某些 float32 操作在基于 Ampere 架构的 GPU 上以较低的精度运行,包括乘法和卷积。具体来说,这类运算的输入从 23 位精度四舍五入到 10 位。这对于深度学习模型来说,在实践中不太会造成问题。但在某些情况下,TensorFloat-32 (单精度浮点数值)也被用于 complex64 操作。可以通过调用config.experimental.enable_tensor_float_32_execution(False) 来禁用 TensorFloat-32 。

默认情况下,XLA:CPU 和 XLA:GPU 设备不再注册。如果你真的需要它们,请使用 TF_XLA_FLAGS=--tf_xla_enable_xla_devices,但该标志位也将在后续版本中删除。

tf.keras:

compile() 中的 steps_per_execution 参数已稳定,不再为实验性支持,如果您传递的是experimental_steps_per_execution,请在你的代码中重新命名为 steps_per_execution 。这个参数控制了在调用 fit() 时,每次调用 tf.function 时要运行的批次数量。在单次 tf.function 调用中运行多个批次可以极大地提高在 TPU 中或带有大量 Python 计算的小型模型的性能。

对 Keras Functional API 内部的重大重构可能会影响到以下代码:

在检查 Keras 符号输入/输出时,使用isinstance(x, tf.Tensor) 而不是 tf.is_tensor的代码,应该改用 tf.is_tensor。

过分依赖符号张量所附加的确切名称的代码(例如,假设输入的结尾为":0",将名称作为唯一的标识符,而不是使用tensor.ref() 等)。

使用 get_concrete_function 直接跟踪 Keras 符号输入的代码,应该改成直接构建匹配的 tf.TensorSpecs 并跟踪TensorSpec对象。

依赖于 TensorFlow 操作转换为操作层后所对应的确切数量和名称的代码,可能需要更改。

使用了tf.map_fn/tf.cond/tf.while_loop/control flow 作为操作层的代码,且碰巧能在 TF 2.4 之前的版本工作的代码。现在将明确地不支持这些功能。在 TF 2.4 之前,将这些操作转换为 Functional API 操作层是不可靠的,而且容易出现难以理解或无法定位的错误。

直接对 Keras 符号值进行断言操作的代码,如 tf.rank 这样可根据输入是静态值或符号值而返回对应的类型的操作,现在这些操作将统一返回符号值。

能够直接泄露张量到计算图以外的代码,在这个版本中将更易于导致泄露。

尝试直接计算 Keras 符号输入/输出的梯度的代码。现在可以使用 GradientTape ,来代替传递给已构建模型的实际张量。

需要通过转换后的操作层进行非常复杂的形状操作才能工作的代码。Keras 符号形状推理被证明是不够的。

试图手动逐层遍历 tf.keras.Model 的代码。它假设层中只有一个位置参数。单这个假设在 TF 2.4 之前也不成立,新版本中更容易引起问题。

在构建模型之前需要手动输入keras.backend.get_graph() 的代码,现在已经不需要这么做了。

在调用 Functional API Keras 模型一开始便强制进行输入形状假释的代码。这可能对一些用户造成影响,如 在 Functional 模型中创建 Input 对象时使用的形状与传递给该模型的数据的形状不匹配时。您可以通过使用正确形状的数据调用模型,或者通过放宽 Input 形状假设来解决不匹配的问题(您可以将 shape 属性设为 None ,将此作为轴(axis)以表示这是动态的),您也可以通过设置 model.input_spec = None 来完全禁止输入检查。

tf.data:

tf.data.experimental.service.DispatchServer 现在采用配置元组而不是单个参数。用法更新为 tf.data.experimental.service.DispatchServer(dispatcher_config)。

tf.data.experimental.service.WorkerServer 现在采用配置元组,而不是单个参数。用法更新为 tf.data.experimental.service.WorkerServer(worker_config)。

tf.distribute:

移除 tf.distribution.Strategy.experimental_make_numpy_dataset。请使用 tf.data.Dataset.from_tensor_slices 来代替。

将 tf.distribut.StrategyExtended.reduce_to、tf.distribut.StrategyExtended.batch_reduce_to、tf.distribut.ReplicaContext.all_reduce 中的 experimental_hints 重命名为 options。

将 tf.distribution.experimental.CollectiveHints 重命名为 tf.distribution.experimental.CommunicationOptions。

将 tf.distribution.experimental.CollectiveCommunication 重命名为 tf.distribution.experimental.CommunicationImplementation。

将 tf.distribut.Strategy.experimental_distribute_datasets_from_function 重命名为 distribute_datasets_from_function,因为它不仅支持实验环境。

删除了 tf.distribut.Strategy.experimental_run_v2 方法,该方法在 TF 2.2 中已被废弃。

tf.lite:

引入了 tf.quantization.quantize_and_dequantize_v2,它更新了超过范围的量化的梯度定义。要模拟tf.quantization.quantize_and_dequantize(...)的 V1 行为,使用tf.grad_pass_through(tf.quantization.quantize_and_dequantize_v2)(...)。


如果您想详细了解 本文提及 的相关内容,请参阅以下文档。这些文档深入探讨了这篇文章中提及的许多主题:

使用 Keras 进行多任务并行训练
https://tensorflow.google.cn/tutorials/distribute/multi_worker_with_keras

tf.experimental.numpy
https://tensorflow.google.cn/api_docs/python/tf/experimental/numpy

详细指南
https://tensorflow.google.cn/guide/tf_numpy

tf.keras.mixed_precision
https://tensorflow.google.cn/api_docs/python/tf/keras/mixed_precision?version=nightly

采样模式 API
https://tensorflow.google.cn/guide/profiler#profiling_apis

指南
https://tensorflow.google.cn/lite/performance/measurement#trace_tensorflow_lite_internals_in_android

TensorFloat-32
https://blogs.nvidia.com/blog/2020/05/14/tensorfloat-32-precision-format/

责任编辑:xj

原文标题:TensorFlow 2.4.0 候选版本发布

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

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

    关注

    2

    文章

    2173

    浏览量

    66261
  • GitHub
    +关注

    关注

    3

    文章

    484

    浏览量

    18429
  • tensorflow
    +关注

    关注

    13

    文章

    332

    浏览量

    61858

原文标题:TensorFlow 2.4.0 候选版本发布

文章出处:【微信号:tensorflowers,微信公众号:Tensorflowers】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    综合配电柜主要功能喝应用场景是什么

    是综合配电柜的主要功能和应用场景的详细说明: 一、核心功能 电能分配 将输入的电力(如三相电或单相电)通过断路器、隔离开关等设备分配到多个输出回路,为不同负载(如电机、照明、空调等)提供独立电源。 支持多路输出,满足复
    的头像 发表于 10-10 10:41 294次阅读

    医院专用数据记录仪主要功能有哪些

    数据记录仪的主要功能在于采集、存储并分析各类数据,在众多领域有着广泛而深入的应用,为不同行业的发展带来了新的活力与变革。那么,医院专用数据记录仪主要功能有哪些?有何产品推荐?下面就让小编来为大家简单
    发表于 09-28 14:53

    RFID手持机的主要功能

    很多企业在做固定资产盘点,通常会使用RFID手持机,毕竟RFID手持机是一款融合无线射频识别技术的便携式数据采集终端机,也称PDA,它具备RFID读写功能,可以对RFID标签进行识读。
    的头像 发表于 08-27 14:10 816次阅读

    窗口看门狗定时器(WWDT)的主要功能是什么?

    窗口看门狗定时器(WWDT)的主要功能是什么?
    发表于 08-26 06:23

    手持采集器是干什么用的 PDA采集器的主要功能与应用场景

    的“得力助手”。下面就来详细说说手持采集器的主要功能和常见应用场景。一、手持采集器的核心功能1.多形式数据采集手持采集器最核心的能力就是“采集”,它支持条形码、二维码
    的头像 发表于 08-20 15:09 839次阅读
    手持采集器是干什么用的 PDA采集器的<b class='flag-5'>主要功能</b>与应用场景

    PLC温度控制系统的主要功能

    PLC温度控制系统作为工业加热、恒温场景的核心控制单元,通过整合传感器、执行器与逻辑控制算法,实现对温度的精准调控,其主要功能可归纳为以下六大核心模块: 一、实时温度检测与采集 系统
    的头像 发表于 08-07 17:59 752次阅读

    一维二维码条码识读器的主要功能有哪些

    在信息化快速发展的当下,一维二维码条码识读器已成为各行各业高效处理信息的重要工具。从超市收银到物流追踪,它凭借快速准确的信息识别能力,大幅提升了工作效率。那么,一维二维码条码识读器的主要功能有哪些呢
    的头像 发表于 08-01 15:59 762次阅读
    一维二维码条码识读器的<b class='flag-5'>主要功能</b>有哪些

    图像采集卡的主要功能与应用

    图像采集卡是一种安装在计算机内部(通常是PCIe插槽)或通过外部接口(如USB3.0,)连接的硬件设备。它的主要功能是将来自摄像头、摄像机、传感器或其他视频源的模拟或数字视频信号,捕获、数字化并传输
    的头像 发表于 07-23 13:47 722次阅读
    图像采集卡的<b class='flag-5'>主要功能</b>与应用

    直流负载箱的主要功能有哪些?

    直流负载箱是专门用于模拟和测试直流电源系统负载的设备,其主要功能包括以下几点: 直流负载箱可以模拟各种不同类型的负载,如电阻、电感、电容等,以满足不同应用场景的需求。通过调整负载箱的参数,可以实现
    发表于 06-17 13:34

    Aigtek:功率放大器的主要功能有哪些

    功率放大器是一种重要的电子设备,其主要功能是将输入信号的功率增加到足够高的水平,以便推动负载或驱动输出设备。功率放大器在各个领域中都具有广泛的应用,例如音频系统、射频通信、雷达、无线电等。下面安泰
    的头像 发表于 03-19 10:40 575次阅读
    Aigtek:功率放大器的<b class='flag-5'>主要功能</b>有哪些

    Abaqus软件介绍:主要功能及模块、优势与特点等

    通过有限元方法对各种工程问题进行数值模拟,帮助工程师和研究人员优化设计、提高产品性能和安全性。 2. 主要功能 结构分析:Abaqus能够
    的头像 发表于 02-13 09:44 2856次阅读

    ABViewer 15.2版本现已发布

    我们的团队很高兴宣布ABViewer 15.2版本现已发布。新版本对软件的所有主要功能进行了改进。下面您将找到我们所做更改的详细列表。 PDF转DWG
    的头像 发表于 02-11 11:49 844次阅读

    电流感应放大器主要功能_电流感应放大器工作原理

    电流感应放大器是一种基于磁耦合原理的电路,主要功能包括以下几个方面:   一、信号放大   电流感应放大器的主要功能之一是将低电平的信号放大到可以被检测的范围内。在电子测量、工业自动化
    的头像 发表于 01-27 11:39 2150次阅读

    继电器的主要功能与应用

    、温度继电器等。 按工作原理分类 :电磁继电器、静态继电器、固态继电器等。 按用途分类 :保护继电器、控制继电器、信号继电器等。 二、继电器的主要功能 信号放大 :继电器可以将微弱的信号放大到足以驱动其他设备的信号强度。
    的头像 发表于 12-28 09:33 2940次阅读

    DCS控制系统的主要功能介绍

    在现代工业自动化领域,分布式控制系统(DCS)已经成为实现复杂过程控制的关键技术之一。DCS通过将控制功能分散到多个控制节点,实现了对工业过程的高效、可靠和灵活控制。 1. 过程控制 DCS的核心功能
    的头像 发表于 12-27 16:44 5807次阅读