TensorFlow 2.9 发布,支持 WSL2、默认启用 oneDNN


TensorFlow 是一个用于机器学习的端到端开源平台。它有一个全面灵活的工具、库和社区资源所组成的生态,让开发人员轻松建立和部署由 ML 驱动的应用程序。TensorFlow 最初用于进行机器学习和深度神经网络研究。但该系统具有足够的通用性,也适用于其他广泛的领域。

TensorFlow 2.9 近日正式发布,更新内容包括 oneDNN 的性能改进,以及 DTensor 的发布,其中后者是一个用于模型分布的 API,可以用来无缝地从数据并行迁移到模型并行。

TensorFlow 还对核心库进行了改进,包括 Eigen 和 tf.function 的统一,以及对 Windows 的 WSL2 的支持。最后,新版本还为 tf.function retracingKeras Optimizers 发布了新的实验性 API。

改进 CPU 性能:默认启用 oneDNN

TensorFlow 与英特尔合作,将 oneDNN 性能库与 TensorFlow 整合在一起,以便在英特尔 CPU 上实现更好的性能。自 TensorFlow 2.5 以来,TensorFlow 对 oneDNN 有实验性的支持,它可以提供高达 4 倍的性能改进。在 TensorFlow 2.9 中,在 Linux x86 上默认开启了 oneDNN 优化,并为具有神经网络硬件功能的 CPU 开启了优化,这些功能在英特尔 Cascade Lake 以及更新的 CPU 上都具备。

使用 DTensor 的模型并行

DTensor 是一个用于分布式模型处理的新的 TensorFlow API,它允许模型可以无缝地从数据并行迁移到基于单程序多数据(SPMD)的模型并行。

DTensor 的设计以下列原则为核心。

  • 一个与设备无关的 API:这允许在 CPU、GPU 或 TPU 上使用相同的模型代码,包括跨设备类型划分的模型。
  • 多客户端执行:移除协调器,让每个任务驱动其本地连接的设备,允许在不影响启动时间的情况下扩展一个模型。
  • 传统上,TensorFlow 的分布式模型代码是围绕副本编写的,但在 DTensor 中,模型代码是从全局角度编写的,每个副本的代码由 DTensor 运行时生成和运行。

tf.function 的 TraceType

新版本修改了 tf.function 回溯的方式,使其更加简单、可预测和可配置。

tf.function 的所有参数都被分配了一个 tf.type.experimental.TraceType。自定义用户类可以使用跟踪协议( tf.types.experimental.SuppersTracingProtocol )声明一个 TraceType。

对 WSL2 的支持

Windows Subsystem for Linux 让开发者直接在 Windows 上运行 Linux 环境,而不需要传统的虚拟机或双启动设置。TensorFlow 现在支持 WSL2,包括 GPU 加速。

确定性的行为

API tf.config.experimental.enable_op_determinism 使 TensorFlow 操作具有确定性。

确定性意味着,如果你用相同的输入多次运行一个操作,该操作每次都会返回完全相同的输出。这对于调试模型很有用,如果你用确定性从头开始训练你的模型几次,你的模型权重每次都是一样的。通常情况下,由于在操作中使用线程,可以以非确定性的顺序添加浮点数,所以许多操作是非确定性的。

用 Keras 优化训练

在 TensorFlow 2.9 中,发布一个新的实验版本的 Keras Optimizer API, tf.keras.optimizers.experimental。该 API 让开发者可以更容易地定制和扩展。

在未来的版本中, tf.keras.optimizers.experimental.Optimizer(和子类)将取代 tf.keras.optimizers.Optimizer(和子类),这意味着使用传统的 Keras 优化器的工作流将自动切换到新的优化器。当前的 tf.keras.optimizers.* API 仍将可以通过 tf.keras.optimizers.legacy.* 访问。

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


相关文章

2022-09-09

TensorFlow 2.10 已经发布,此版本的亮点包括 Keras 中的用户友好功能,可帮助开发转换器、确定性和无状态初始化程序、优化器 API 的更新以及帮助加载音频数据的新工具。 此版本还通过 oneDNN 增强了性能,在 Windows 上扩展了 GPU

2022-08-28

Mir 是一套用于构建基于 Wayland 的 Shell 库。Mir 简化了 Shell 作者需要处理的复杂性:它提供了一个稳定的、经过良好测试的、高性能的平台,具有触控、鼠标和平板电脑输入、多显示器功能和安全的客户端-服务器通信。 ABI 摘要

2022-11-22

/ Alluxio宣布正式发布数据编排平台2.9版本 / Alluxio 2.9 版本的主要新增功能包括: 新增跨环境集群同步功能、增强Alluxio在Kubernetes上的可管理性、提高S3 API 安全性和用户体验 2022年11月17日,全球首创的开源数据编排软件开发

2022-08-09

微软 Linux on Windows 团队主管宣布,已面向所有 Windows Insiders 用户推出了 Windows Subsystem for Linux 0.65.1。 WSL 即 Windows Subsystem for Linux,是 Windows 的 Linux 子系统,本质是在 Windows 上原生运行 Linux 二进制可执行文件(ELF 格式

2022-08-22

asticsearch 不同,它非常简单且易于操作。 目前 Zinc v0.2.9 发布了,此版本带来如下改动: Changelog 9873bb9 将 github.com/aws/aws-sdk-go-v2/config 从 1.15.15 升级到 1.17.1 (#438) 0dbd6f4 将 github.com/aws/aws-sdk-go-v2/service/s3 从 1.27.2 升

2022-09-03

TensorFlow 是一个用于机器学习的端到端开源平台。它有一个全面灵活的工具、库和社区资源所组成的生态,让开发人员轻松建立和部署由 ML 驱动的应用程序。TensorFlow 最初用于进行机器学习和深度神经网络研究。但该系统具有足

2022-09-24

行 systemd,这一变化意味着 WSL 允许你使用依赖于 systemd 支持的软件,也让 WSL 更贴近于那种在设备上独立安装运行的 Linux 发行版而不是兼容层。 依赖 systemd 的一些知名 Linux 应用程序包括: snap(Canonical 为使用 Linux 内核和 sy

2021-11-15

如果你正在使用 Windows 11 Build 22000 或更高版本,现在已支持通过 WSL 直接挂载 Linux 磁盘。 Windows 文档显示,如果要访问不受 Windows 支持的 Linux 磁盘格式(如 EXT4),可以使用 WSL 2 挂载磁盘然后再访问其内容。  相关命令

2021-11-09

微软今天正式发布了 Visual Studio 2022,Visual Studio 2022 的主要功能包括: 64-bit devenv.exe 现在仅支持 64 位 Azure Cloud Services 现在支持 Azure 云服务(经典)和 Azure 云服务(扩展支持)项目 C++ v143 构建工具现在可通过 Visua

2022-05-22

Mesa 22.1 近日正式发布,这是开源 OpenGL/Vulkan 图形驱动堆栈的最新季度功能更新。 Mesa 22.1 的更新亮点包括: AMD GFX1036 / GFX1037 支持 RADV 增加了对动态 VRS 支持 Imagination PowerVR Rogue GPU Vulkan 驱动被合并 英特尔 Arctic Sound M 的支

2022-07-21

社区,支持不同的量子计算研究领域。这些库包括: TensorFlow Quantum:探索量子机器学习的工具。使用 TensorFlow Quantum,研究人员以每秒 1.1 petaflops(每秒 1.1 x 1015 次操作)的速度在 30 个量子位上训练了一个机器学习模型。

2022-03-01

Podman 正式发布了全新的大版本——v4.0。 发布公告写道,Podman 4.0 是有史以来最重要的版本之一,增加了 60 多项新特性,主要更新内容是完全重写网络堆栈,以提升功能和性能。此外还有许多其他的变更,包括改进 Podman

2022-07-24

Taro 3.4.14 现已发布。Taro 是一个开放式跨端跨框架解决方案,支持使用 React/Vue/Nerv 等框架来开发微信 / 京东 / 百度 / 支付宝 / 字节跳动 / QQ 小程序 / H5 等应用。具体更新内容如下: 特性 CLI 支持使用包管理器的 create 

2022-08-25

程序开发,提高了开发人员的速度,可与其他框架(如 Tensorflow、PyTorch、Hugging Face 等)进行互操作。 Ray 现在支持使用 Ray Datasets 库对 100TB 或更多的数据进行本地 shuffle KubeRay:是一个用于在 Kubernetes 上运行 Ray 的工具包,