TensorFlow 2.10 已经发布,此版本的亮点包括 Keras 中的用户友好功能,可帮助开发转换器、确定性和无状态初始化程序、优化器 API 的更新以及帮助加载音频数据的新工具。
此版本还通过 oneDNN 增强了性能,在 Windows 上扩展了 GPU 支持等等。此版本还标志着 TensorFlow 决策森林 1.0!
对 Keras 注意力层的扩展、统一掩码支持
从 TensorFlow 2.10 开始,对 Keras 注意力层的掩码处理,例如 tf.keras.layers.Attention、tf.keras.layers.AdditiveAttention 和 tf.keras.layers.MultiHeadAttention 进行了扩展和统一。特别添加了两个功能:
Causal attention :三个层现在都支持调用 use_causal_mask 参数 (Attention和 AdditiveAttention 用于将 Causal 参数传递给 init)。
隐式屏蔽: Keras Attention、 AdditiveAttention 和 MultiHeadAttention 层现在支持隐式屏蔽 。( 需要在 tf.keras.layers.Embedding 中设置 mask_zero=True)。
结合起来简化了任何 Transformer 样式模型的实现。
新的 Keras Optimizer API
之前的 Tensorflow 2.9 版本在 tf.keras.optimizers.experimental 中发布了新版本的 Keras Optimizer API,它将替换 TensorFlow 2.11 中当前的 tf.keras.optimizers 命名空间。
为了将优化器命名空间正式切换到新 API,TensorFlow 2.10 的 tf.keras.optimizers.legacy 导出了所有当前的 Keras 优化器。大多数用户不会受到此更改的影响,请查看 API 文档,以检查工作流中使用的API 是否已更改。
确定性和无状态 Keras 初始化器
TensorFlow 2.10 使 Keras 初始化程序( tf.keras.initializers API)无状态和确定性,建立在无状态 TF 随机操作之上。从 TensorFlow 2.10 开始,种子和非种子 Keras 初始化程序在每次调用时(对于给定的变量形状)总是会生成相同的值。
无状态初始化器使 Keras 能够支持新功能,例如使用 DTensor 进行多客户端模型训练。
具有步级粒度的 BackupAndRestore 检查点
在之前的版本 Tensorflow 2.9 中,tf.keras.callbacks.BackupAndRestore Keras 回调将在 epoch 边界备份模型和训练状态。
在 Tensorflow 2.10 中,回调还可以每 N 个训练步骤备份一次模型。 但是,,当 BackupAndRestore 与 tf.distribute.MultiWorkerMirroredStrategy 一起使用时,分布式数据集迭代器状态将被重新初始化,并且在恢复模型时不会恢复。
从音频文件目录轻松生成音频分类数据集
现在可以使用新程序 tf.keras.utils.audio_dataset_from_directory ,从 .wav 文件目录轻松生成音频分类数据集。
只需将音频文件分类到每个文件类的不同目录中,一行代码将提供一个标记 tf.data.Dataset,可以将其传递给 Keras 模型。查看示例
EinsumDense 层转为稳定功能
einsum 函数是线性代数的瑞士军刀。 它可以有效而明确地描述各种各样的操作。 tf.keras.layers.EinsumDense 层为 Keras 带来了一些功能。
einsum、einops.rearrange 和 EinsumDense 层等操作基于描述输入和输出轴的字符串“方程”进行操作。 对于 EinsumDense,方程列出了输入参数的轴、权重的轴和输出的轴。
更多内容可以查看 Tensorflow 博客。