TensorFlow 2.5.0 正式版现已发布

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_callsdeterministic 参数。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.CentralStorageStrategytf.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 APIPluggableDevice 接口 以模块化方式 连接至 TensorFlow。

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

  • 默认情况下,这些性能优化功能处于关闭状态。通过设置环境变量 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 Release 2.5.0
中文:TensorFlow 公众号