TensorFlow 2.5.0 稳定版发布,包含重大改进

来源: OSCHINA
编辑: 局长
2021-05-16

TensorFlow 2.5.0 稳定版已发布,此版本增加了许多重要的新特性和重大改进。

新特性和改进

1. 增加了对 Python3.9 的支持。

2. tf.data

  • tf.data 服务现已支持严格的轮循读取,这对于示例大小不同的同步训练工作负载很有用。利用严格的轮循读取,用户可以保证消费者在同一步骤中获得相似大小的示例。

  • tf.data 服务现已支持可选压缩。以前,数据总是经过压缩,但现在可以通过向 tf.data.experimental.service.distribute(...) 传递 compression=None 来禁用压缩。

  • tf.data.Dataset.batch() 现已支持 num_parallel_calls 和 deterministic 参数。num_parallel_calls 用于表示应并行计算多个输入批次。设置 num_parallel_calls 后,deterministic 参数用于表示可以按非确定性顺序获得输出。

  • 由 tf.data.Dataset.options() 返回的选项不再可变。

  • tf.data 输入流水线现在可以在调试模式下执行,该模式禁用任何异步、并行或非确定性,并强制 Python 执行(而不是跟踪编译的计算图执行)传入转换(如 map )中的用户定义的函数。调试模式可以通过 tf.data.experimental.enable_debug_mode() 启用。

3. tf.lite

默认已启用基于 MLIR 的全新量化后端。

  • 全新后端用于 8 int 的训练后量化。

  • 全新后端移除了多余的重缩放因子,并修复了一些错误(共享权重/偏置、极小缩放因子等)。

  • 将 tf.lite.TFLiteConverter 中的 experimental_new_quantizer 设置为 False,以禁用此变更。

4. tf.keras

  • tf.keras.metrics.AUC 现已支持 logit 预测。

  • 已在 Model.fit 中启用受支持的全新输入类型。tf.keras.utils.experimental.DatasetCreator,该类型需要可调用函数 dataset_fnDatasetCreator 适用于所有 tf.distribute 策略,并且是参数服务器策略支持的唯一输入类型。

5. tf.distribute

  • 现可在 tf.distribute.Strategy 范围内(tf.distribute.experimental.CentralStorageStrategy 和 tf.distribute.experimental.ParameterServerStrategy 除外)创建 tf.random.Generator。不同的副本将得到不同随机数的工作流。

  • tf.distribute.experimental.ParameterServerStrategy 现在与 DatasetCreator 一起使用时,可通过 Keras Model.fit 进行训练。

6. TPU 嵌入支持

已将 profile_data_directory 添加到 _tpu_estimator_embedding.py 中的 EmbeddingConfigSpec。此功能允许将运行时收集的嵌入查找统计信息用于嵌入层分区决策。

7. PluggableDevice

第三方设备现可通过 StreamExecutor C API 和 PluggableDevice 接口以模块化方式连接至 TensorFlow。

  • 通过内核和算子注册 C API 添加自定义算子和内核。

  • 使用计算图优化 C API 注册自定义计算图优化通道。

    • StreamExecutor C API

      https://github.com/tensorflow/community/blob/master/rfcs/20200612-stream-executor-c-api.md

    • PluggableDevice

      https://github.com/tensorflow/community/blob/master/rfcs/20200624-pluggable-device-for-tensorflow.md

    • 以模块化方式

      https://github.com/tensorflow/community/blob/master/rfcs/20190305-modular-tensorflow.md

    • 内核和算子注册 C API

      https://github.com/tensorflow/community/blob/master/rfcs/20190814-kernel-and-op-registration.md

    • 计算图优化 C API

      https://github.com/tensorflow/community/blob/master/rfcs/20201027-modular-tensorflow-graph-c-api.md

8. 经过 Intel 优化的 TensorFlow  oneAPI 深度神经网络库(oneDNN)CPU 性能优化现已在官方 x86-64 Linux 和 Windows 版本中发布。

  • 经过 Intel 优化的 TensorFlow

    https://software.intel.com/content/www/us/en/develop/articles/intel-optimization-for-tensorflow-installation-guide.html

  • oneAPI 深度神经网络库(oneDNN)

    https://github.com/oneapi-src/oneDNN

  • 默认情况下,这些性能优化功能处于关闭状态。通过设置环境变量 TF_ENABLE_ONEDNN_OPTS=1 可启用这些功能。

  • 不建议在 GPU 系统中使用这些功能,因为它们尚未经过 GPU 的充分测试。

9. 利用 CUDA11.2 和 cuDNN 8.1.0 构建 TensorFlow pip 软件包。

重大变更

  • 已将 TF_CPP_MIN_VLOG_LEVEL 环境变量重命名为 TF_CPP_MAX_VLOG_LEVEL,以正确描述其影响。

稿源:Tensorflow公众号

展开阅读全文
3 收藏
分享
加载中
最新评论 (1)
250??
2021-05-17 11:24
0
回复
举报
更多评论
1 评论
3 收藏
分享
返回顶部
顶部