> [!NOTE] > 本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。 > [English](./README.en.md) · [原始项目](https://github.com/keras-team/keras) · [上游 README](https://github.com/keras-team/keras/blob/HEAD/README.md) > 原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。 # Keras 3:面向人类的深度学习 Keras 3 是一个多后端深度学习框架,支持 JAX、TensorFlow、PyTorch 和 OpenVINO(仅用于推理)。 可轻松构建并训练用于计算机视觉、自然语言处理、音频处理、 时间序列预测、推荐系统等领域的模型。 - **加速模型开发**:借助 Keras 的高级用户体验,以及 PyTorch 或 JAX 急切执行(eager execution)等易于调试的运行时,更快交付深度学习解决方案。 - **业界领先的性能**:选择最适合您模型架构的后端(通常是 JAX!),相比其他框架可获得 20% 至 350% 的加速。[基准测试在这里](https://keras.io/getting_started/benchmarks/). - **数据中心级训练**:自信地从笔记本电脑扩展到大型 GPU 或 TPU 集群。 与近三百万开发者一起,从新兴初创公司到全球企业,共同发挥 Keras 3 的威力。 ## 安装 ### 使用 pip 安装 Keras 3 在 PyPI 上提供为 `keras`。请注意,Keras 2 仍以 `tf-keras` 包的形式提供。 1. 安装 `keras`: ``` pip install keras --upgrade ``` 2. 安装后端包。 要使用 `keras`,您还需要安装所选的后端:`tensorflow`、`jax` 或 `torch`。此外, `openvino` 后端可用,但仅支持模型推理。 ### 本地安装 #### 最小安装 Keras 3 兼容 Linux 和 macOS 系统。对于 Windows 用户,我们建议使用 WSL2 运行 Keras。 要安装本地开发版本: 1. 安装依赖: ``` pip install -r requirements.txt ``` 2. 从根目录运行安装命令。 ``` python pip_build.py --install ``` 3. 在创建更新 `keras_export` 公共 API 的 PR 时,运行 API 生成脚本: ``` ./shell/api_gen.sh ``` ## 后端兼容性表 下表列出了最新稳定版 Keras(v3.x)对各后端的最低支持版本: | 后端 | 最低支持版本 | |------------|---------------------------| | TensorFlow | 2.16.1 | | JAX | 0.4.20 | | PyTorch | 2.1.0 | | OpenVINO | 2025.3.0 | #### 添加 GPU 支持 `requirements.txt` 文件将安装仅 CPU 版本的 TensorFlow、JAX 和 PyTorch。如需 GPU 支持,我们还 为 TensorFlow、JAX 和 PyTorch 提供了单独的 `requirements-{backend}-cuda.txt`。这些会通过 `pip` 安装所有 CUDA 依赖,并期望已预装 NVIDIA 驱动。我们建议为每个后端使用干净的 Python 环境,以避免 CUDA 版本不匹配。例如,以下是如何使用 `conda` 创建 JAX GPU 环境: ```shell conda create -y -n keras-jax python=3.10 conda activate keras-jax pip install -r requirements-jax-cuda.txt python pip_build.py --install ``` ## 配置后端 您可以导出环境变量 `KERAS_BACKEND`,或编辑本地配置文件 `~/.keras/keras.json` 来配置后端。可用的后端选项有:`"tensorflow"`、`"jax"`、`"torch"`、`"openvino"`。示例: ``` export KERAS_BACKEND="jax" ``` 在 Colab 中,您可以: ```python import os os.environ["KERAS_BACKEND"] = "jax" import keras ``` **注意:** 必须在导入 `keras` 之前配置后端,导入包后无法更改后端。 **注意:** OpenVINO 后端是仅推理后端,意味着它仅设计用于通过 `model.predict()` 方法运行模型预测。 ## 向后兼容 Keras 3 旨在作为 `tf.keras` 的直接替代(使用 TensorFlow 后端时)。只需拿出现有的 `tf.keras` 代码,确保对 `model.save()` 的调用使用最新的 `.keras` 格式,即可完成。 如果您的 `tf.keras` 模型不包含自定义组件,您可以立即在 JAX 或 PyTorch 上运行它。 如果确实包含自定义组件(例如自定义层或自定义 `train_step()`),通常只需几分钟即可将其转换为与后端无关的实现。 此外,无论使用哪个后端,Keras 模型都可以使用任何格式的数据集: 您可以使用现有的 `tf.data.Dataset` 流水线或 PyTorch `DataLoaders` 训练模型。 ## 为何使用 Keras 3? - 在任何框架之上运行高级 Keras 工作流——按需受益于各框架的优势, 例如 JAX 的可扩展性与性能,或 TensorFlow 的生产生态系统选项。 - 编写可在任何框架的低级工作流中使用的自定义组件(例如层、模型、指标)。 - 您可以获取 Keras 模型,并在用原生 TF、JAX 或 PyTorch 从头编写的训练循环中训练它。 - 您可以获取 Keras 模型,将其作为 PyTorch 原生 `Module` 的一部分,或作为 JAX 原生模型函数的一部分。 - 通过避免框架锁定,让您的 ML 代码面向未来。 - 作为 PyTorch 用户:终于可以使用 Keras 的强大功能与易用性! - 作为 JAX 用户:终于可以使用功能齐全、久经考验、文档完善的建模与训练库。 在 [Keras 3 发布公告](https://keras.io/keras_3/). 中了解更多