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_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_fn。DatasetCreator适用于所有tf.distribute策略,并且是参数服务器策略支持的唯一输入类型。
5. tf.distribute
-
现可在
tf.distribute.Strategy范围内(tf.distribute.experimental.CentralStorageStrategy和tf.distribute.experimental.ParameterServerStrategy除外)创建tf.random.Generator。不同的副本将得到不同随机数的工作流。 -
tf.distribute.experimental.ParameterServerStrategy现在与DatasetCreator一起使用时,可通过 KerasModel.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,以正确描述其影响。