- 发布日期
Keras 是一个用 Python 编写的深度学习 API。它自身不携带数值计算引擎,而是可以运行在 JAX、TensorFlow 或 PyTorch 之上,因此同一份模型代码能够在这些后端之间迁移[1]。这一层 API 承担的是每个项目都要重复一遍的工作:定义层、把层堆成模型、写训练流程、按批次喂数据;至于底层的张量运算,则交给后端完成。
层与模型
Keras 的核心数据结构是层(layer)和模型(model)[1]。层是一块可复用的计算单元,它持有一组权重,并规定了输入张量如何变成输出张量。模型本身也是一种层,由其他层组合而成。最简单的模型类型是序贯模型(Sequential),把层一层接一层串起来;遇到需要分支、合并或循环的结构,Keras 提供函数式 API(functional API)来搭建任意形状的层图[1]。
一套接口,三种框架
Keras 3 是多框架 API:任何 Keras 模型都可以实例化为 PyTorch 的 Module,导出为 TensorFlow 的 SavedModel,或实例化为无状态的 JAX 函数[1]。实际意义在于,模型写一次之后,就能交给团队已经在用的那套生态里的工具处理,而不必绑死在一个框架上。
数据方面同理。fit()、evaluate() 和 predict() 这些训练与推理例程,无论后端是什么,都能直接接收 tf.data.Dataset 对象、PyTorch 的 DataLoader 对象、NumPy 数组和 Pandas 数据框[1]。换了后端或换了数据管道,训练脚本不需要重写。
不同后端的速度并不一样。Keras 表示,其基准测试(benchmark)显示 JAX 在 GPU、TPU 和 CPU 上通常能给出最好的训练和推理性能,而非 XLA 的 TensorFlow 在 GPU 上偶尔更快[1]。这些是项目自己做的测试结果,反映的是它测量的那些配置,不宜当作普遍排名。
由来
keras-team/keras 仓库于 2015 年 3 月 28 日在 GitHub 上创建[2]。Keras 这个名字来自希腊语中表示「角」的词,项目最初是作为 ONEIROS 项目研究工作的一部分开发的[1]。它按 Apache-2.0 许可分发,仓库在 GitHub 上约有 6.4 万颗星[2]。
Keras 3
Keras 3.0.0 于 2023 年 11 月 28 日在 GitHub 上发布,此后 3.x 系列持续以小版本迭代[3]。多框架是这条版本线最核心的特征:同一套接口面对的是 JAX、TensorFlow 和 PyTorch 三个引擎,而不是单独一个[1]。因为模型可以在它们之间来回转换,团队写代码时面对的接口可以保持稳定,底层的引擎则按速度、硬件或既有基础设施来挑。
谁在用
Keras 称,使用它的机构包括 NASA、YouTube 和 Waymo[1]。航天与科研、大型视频平台、自动驾驶软件,三个场景差别很大,共同点是都需要快速把模型定义出来,再规模化地训练。
意义与局限
Keras 的价值在于把关注点分开。模型代码描述有哪些层、层之间怎么连;后端决定算术究竟如何在 GPU、TPU 或 CPU 上执行;数据代码则可以沿用流程里其他环节已经在用的格式。对刚开始学深度学习的人来说,它可以是第一个上手的库:写一个序贯模型,调用几行 fit() 就能跑起来;对工程团队来说,它是把同一个模型再导出成另一种生态格式时的实用工具。
代价是抽象层会遮蔽细节。当模型训练变慢、显存占用超出预期时,原因往往在后端和其下编译出的算子那里,那里用户能直接控制的东西更少。速度数字也依赖测试方法、硬件和编译设置——项目自己对 JAX 与非 XLA 版 TensorFlow 的比较就体现了这一点[1]。更准确的理解是:Keras 是描述模型、训练模型的那一层,而不是它所依赖的那些引擎的替代品。
注释与来源
- About Keras 3https://keras.io/about/
- keras-team/keras repository metadatahttps://api.github.com/repos/keras-team/keras
- Keras releaseshttps://github.com/keras-team/keras/releases
引用本页: Keras. TellWorld, https://www.tellworld.net/zh/products/keras. 更新于 2026-11-08