TensorFlow 2.12 正式发布

  TensorFlow 是一个用于机器学习的端到端开源平台。它有一个全面灵活的工具、库和社区资源所组成的生态,让开发人员轻松建立和部署由 ML 驱动的应用程序。

  TensorFlow 最初用于进行机器学习和深度神经网络研究。但该系统具有足够的通用性,也适用于其他广泛的领域。

  重要变化

  构建、编译和打包

  • 删除了多余的软件包 tensorflow-gpu 和 tf-nightly-gpu。这些包被删除,取而代之的是分别引导用户切换到 tensorflow 或 tf-nightly 的包。自 TensorFlow 2.1 以来,这两组包之间唯一的区别是它们的名字,所以没有损失的功能或 GPU 支持。

  tf.function

  • tf.function 现在直接使用 Python inspect 库来解析它所装饰的 Python 函数的签名。这一改变可能会破坏那些函数签名错误,但之前被忽略的代码,例如:
    • 在一个具有不同签名的函数上使用 functools.wraps
    • 在无效的 tf.function 输入下使用 functools.partial
  • tf.function 现在强制要求输入的参数名必须是有效的 Python 标识符。不兼容的名字会被自动处理,类似于现有的 SavedModel 签名行为。
  • 无参数的 tf.function 被假定为有一个空的 input_signature,而不是未定义的,即使 input_signature 是未指定的。
  • tf.types.experimental.TraceType 现在需要定义一个额外的 placeholder_value 方法。
  • tf.function 现在使用由 TraceType 生成的占位符值而不是值本身来进行追踪。

  实验性

API tf.config.experimental.enable_mlir_graph_optimization 和 tf.config.experimental.disable_mlir_graph_optimization 被移除。

  主要功能和改进

  增加了对 Python 3.11 的支持

  删除了对 Python 3.7 的支持

  tf.lite

  • 为内置运算 fill 添加 16 位浮点类型支持
  • 转置现在支持 6D 张量
  • Float LSTM 现在支持对角线递归张量

  tf.experimental.dtensor

  • 协调服务现在可以与 dtensor.initialize_accelerator_system 一起工作,并且默认启用。
  • 添加 tf.experimental.dtensor.is_dtensor 来检查一个张量是否是一个 DTensor 实例。

  tf.test

  • 增加了 tf.test.experimental.sync_devices,这对准确测量基准的性能很有用

  tf.experimental.dtensor

  • 增加了对 GPU 上 ReduceScatter fuse 的实验性支持

  ……

  更多详情可查看:https://github.com/tensorflow/tensorflow/releases/tag/v2.12.0