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 摘要

2023-03-27

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

2023-07-26

Astro 2.9 已正式发布。主要变化: 支持视图转换(实验性) 新增重定向redirects命令 优化脚本打包 详情查看发布说明。 Astro 是一款现代化的轻量级静态站点生成器,具有出众的开发者体验 (Developer Experience)。 Astro 其他

2024-08-20

支持版本,支持周期至少一年。在未来的一年内,我们会发布补丁版本(v1.2.9.2, v1.2.9.3, v1.2.9.5, v1.2.9.7)等,补丁版本的版本编号我们采用质数 :) 默认格式已经调整TMU格式,TMU格式是TM格式的Unicode版。TM格式长期依赖的通点是无

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-11-22

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

2023-11-02

地 0 - 本地 1 - 腾讯云 2 - 七牛云 3- 阿里oss) 4、代码生成支持雪花ID 5、修复大文件上传目录配置bug 6、更新CMS个人中心及前端部分BUG 项目介绍: 基于全新 Go Frame 2.5+Vue3+Element Plus 开发的全栈前后端分离的管理系统 前端采用 vue-ne

2023-07-07

我们的项目 WSL-libre-linux-kernel 已经发布了 6.4.0 版本。这是一个为 Windows Subsystem for Linux (WSL) 定制的自由 Linux 内核,旨在提供更高的性能、安全性和兼容性。我们的项目基于 Linux-libre 项目,删除了所有非自由的软件和驱动,保

2023-07-20

跟着我读三遍! 自由软件意味着使用者有运行、复制、发布、研究、修改和改进该软件的自由。 !!! 自由软件意味着使用者有运行、复制、发布、研究、修改和改进该软件的自由。 !!! 自由软件意味着使用者有运行、

2023-02-15

OpenGL、OpenCL 和 Vulkan API 进行 GPU 加速之后,微软又正式发布了针对 Linux 的 Windows 子系统 (WSL2)  的 Direct3D 12 GPU 视频加速支持。 这项 Direct3D 12 for WSL 工作在 Mesa 内构建,允许在 WSL2 下使用 GPU 加速视频的编码/解码工作。用户

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 升

2023-02-03

数据可视化引擎 G2 4.2.9 版本现已发布,更新内容包括:  New Features feat: 多选模式的遮罩交互功能 #4589  Bug Fixes fix(docs): 错别字修复 #4207 fix: 修复极坐标下,圆弧坐标轴文本收尾重叠的问题  #4408 fix(tes

2022-09-24

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