2022 年 11 月 21 日 — TensorFlow 和 Keras 团队发布 TensorFlow 2.11 已发布!此版本的主要亮点包括 DTensor 的增强功能、Keras 优化器迁移的完成、实验性 StructuredTensor 的引入、用于 Keras 的新的 warmstart 嵌入实用程序、新的组归一化 Keras 层、TensorFlow Decision Forest 模型的原生 TF Serving 支持等等……
TensorFlow 和 Keras 团队发布
TensorFlow 2.11 已发布!此版本的主要亮点包括 DTensor 的增强功能、Keras 优化器迁移的完成、实验性 StructuredTensor 的引入、用于 Keras 的新的 warmstart 嵌入实用程序、新的组归一化 Keras 层、TensorFlow Decision Forest 模型的原生 TF Serving 支持等等。让我们来看看这些新功能。
DTensor 是一个 TensorFlow 分布式处理 API,它允许模型无缝地从数据并行迁移到基于单程序多数据 (SPMD) 的模型并行,包括空间分区。它为您提供了轻松训练模型的工具,这些模型的模型权重或输入非常大,无法容纳在单个设备上。我们在 TensorFlow v2.11 中做了几个更新。
在 TensorFlow 2.9 中,我们发布了新的 Keras 优化器 API 的实验版本, tf.keras.optimizers.experimental,以提供更统一和扩展的内置优化器目录,这些优化器可以更容易地定制和扩展。在 TensorFlow 2.11 中,我们很高兴地分享优化器迁移已完成,新的优化器默认情况下已启用。
旧的 Keras 优化器在 tf.keras.optimizers.legacy 下可用。这些永远不会被删除,但它们不会看到任何新的功能添加。新的优化器将仅基于 tf.keras.optimizers.Optimizer (新的基类)实现。
大多数用户不会受到此更改的影响,但如果您发现工作流程失败,请查看 发行说明 以了解可能存在的问题,以及 API 文档 以查看工作流程中使用的任何 API 是否已更改。
TensorFlow 2.11 添加了一个新的组归一化层,keras.layers.GroupNormalization。组归一化将通道分成组,并在每组内计算均值和方差以进行归一化。根据经验,如果学习率随批大小线性调整,则其准确性在各种较小的批大小范围内比批次归一化更稳定。有关更多详细信息,请参阅 API 文档,并试用!
TensorFlow 2.11 包含一个新的实用程序函数:keras.utils.warmstart_embedding_matrix。它允许您从另一组嵌入向量(通常在之前的运行中训练)初始化新词汇表的嵌入向量。
new_embedding = layers.Embedding(vocab_size, embedding_depth) |
随着 TensorFlow 2.11 的发布,TensorFlow Serving 添加了对 TensorFlow Decision Forests 模型的原生支持。这极大地简化了在 Google Cloud 和其他生产系统中提供 TF-DF 模型。查看新的 TensorFlow Decision Forests 和 TensorFlow Serving 教程,以及新的 进行预测 教程,以了解更多信息。
您是否知道 TF-DF 预先安装在 Kaggle 笔记本中?只需使用 import tensorflow_decision_forests as tfdf 导入 TF-DF 并开始建模。
TensorFlow Lite 现在支持新的操作,包括 tf.unsorted_segment_min, tf.atan2 和 tf.sign. 我们还更新了 tfl.mul 以支持 complex32 输入。
添加了 tf.experimental.StructuredTensor 类。此类提供了一种灵活且原生 TensorFlow 的方式来对结构化数据(如协议缓冲区或 pandas 数据帧)进行编码。StructuredTensor 允许您编写可读的代码,这些代码可用于 tf.function、Keras 和 tf.data。以下是一个简短的示例。
documents = tf.constant([ |
>>> st[0].to_pyval() |
>>> st.field_value(("tokens", "length")) |
您可以在上面链接的 API 文档中了解更多信息。
从 TensorFlow 2.12 版本开始,TensorFlow 1 的 Estimator 和 Feature Column API 将被视为完全弃用,取而代之的是 Keras 中健壮且完整的等效 API。作为运行 v1.Session 样式代码的模块,Estimator 和 Feature Column 难以正确编写,尤其容易出现意外行为,特别是与 TensorFlow 2 中的代码结合使用时。
作为 TensorFlow 1 中大多数模型开发的主要入口,我们已尽力确保其替代品具有功能奇偶性和积极支持。从现在开始,使用 Estimator API 构建的模型应迁移到 Keras API,通过 Feature Column 进行特征预处理,具体来说是 迁移到 Keras 的预处理层 - 无论是直接还是通过 TF 2.12 的一站式实用程序 tf.keras.utils.FeatureSpace(构建在其之上)。
弃用将在整个 TensorFlow 文档中反映出来,并在运行时发出警告,详细说明如何避免弃用行为并采用其替代方法。
TensorFlow 2.11 将是最后一个支持 Python 3.7 的 TF 版本。由于 TensorFlow 依赖于 NumPy,我们旨在遵循 numpy 的 Python 版本支持策略,这将有利于我们的内部和外部用户,并确保我们的软件安全。此外,最近报告的几个漏洞要求我们提升 numpy 版本,但事实证明与 Python 3.7 不兼容,进一步支持了弃用 Python 3.7 支持的决定。
查看 发行说明以获取更多信息。要保持最新,您可以阅读 TensorFlow 博客,关注 twitter.com/tensorflow,或订阅 youtube.com/tensorflow。如果您构建了一些想分享的内容,请将其提交到我们的社区亮点 goo.gle/TFCS。如有反馈,请在 GitHub 上提交问题或发布到 TensorFlow 论坛。谢谢!