tf_keras包
tf_keras
是 TensorFlow 官方维护的 Keras 包,它是从 TensorFlow 2.16 版本开始引入的一个独立 Python 包。
它的出现背景和核心要点如下:
起源:Keras 与 TensorFlow 的整合与分离:
最初,Keras 是一个独立的高级神经网络 API,支持多种后端(包括 TensorFlow、Theano、CNTK)。
TensorFlow 1.x 后期开始,Keras 被深度集成到 TensorFlow 中,成为
tf.keras
模块。tf.keras
是 TensorFlow 的首选高级 API,提供了构建和训练模型的便捷接口。随着 Keras 3.0 的发布(由 Keras 团队主导),Keras 重新成为一个独立的多后端框架(支持 TensorFlow、JAX、PyTorch)。这个独立版本通常被称为
keras-core
或keras
(通过pip install keras
安装)。为了保持 TensorFlow 用户生态的稳定性和对 TensorFlow 深度集成的需求,TensorFlow 团队决定在 TensorFlow 内部继续维护一个专门为 TensorFlow 优化和绑定的 Keras 实现,这就是
tf_keras
。
目的:
稳定性: 避免 TensorFlow 用户因 Keras 核心库(
keras-core
)的独立发展(可能引入不兼容变更或优先支持其他后端)而被迫升级或遇到兼容性问题。深度集成: 保持与 TensorFlow 底层基础设施(如分布式策略
tf.distribute
、TensorFlow Serving、TF Lite、TF.js、TFX 等)的无缝集成和优化。TensorFlow 优先: 确保 Keras API 在 TensorFlow 生态中的行为一致性和最佳性能。
解耦: 将 TensorFlow 内部的 Keras 实现 (
tf.keras
) 从 TensorFlow 主仓库中分离出来,成为一个独立的、版本化的包 (tf_keras
),使得 TensorFlow 本身的发布节奏和tf_keras
的更新可以更灵活。
与
tf.keras
的关系:tf_keras
就是 TensorFlow 中tf.keras
模块的源代码打包成的独立 Python 包。当你安装 TensorFlow (>=2.16) 时,它会自动安装
tf_keras
作为依赖项。在 TensorFlow 代码中,你仍然像以前一样使用
import tensorflow as tf
然后tf.keras...
。这个tf.keras
的底层实现就是tf_keras
包提供的。你也可以直接
import tf_keras as keras
来使用它,就像使用独立的 Keras 一样,但它只支持 TensorFlow 后端,并且深度绑定 TensorFlow 特性。
与独立
keras
(Keras Core / Keras 3) 的关系:不同的包:
tf_keras
和keras
(pip install keras
) 是两个不同的 Python 包。不同的目标:
tf_keras
是 TensorFlow 生态专用的、与 TensorFlow 深度绑定的 Keras 实现。keras
(Keras Core) 是一个独立的多后端框架。兼容性:
tf_keras
的 API 旨在高度兼容 TensorFlow 2.15 及之前版本中的tf.keras
API。从tf.keras
迁移到tf_keras
通常只需要修改导入语句(from tensorflow import keras
->import tf_keras as keras
)。它不一定完全跟随独立keras
的最新 API 变化。后端:
tf_keras
仅支持 TensorFlow 后端。独立keras
支持 TensorFlow、JAX、PyTorch 后端。
如何安装和使用:
通常,你不需要单独安装
tf_keras
。安装 TensorFlow (>=2.16) 时会自动安装它。在 TensorFlow 代码中:继续使用
import tensorflow as tf
然后model = tf.keras.Sequential(...)
。如果你想明确使用
tf_keras
包(例如,在非 TensorFlow 特定上下文中强调你用的是 TensorFlow 的 Keras,或者需要直接引用包名):import tf_keras as keras
然后model = keras.Sequential(...)
。
总结:
tf_keras
是 TensorFlow 官方分叉和维护的 Keras 实现。它是一个独立的 Python 包,但作为 TensorFlow (>=2.16) 的核心依赖项自动安装。它提供了与之前 tf.keras
高度兼容的 API,并深度集成 TensorFlow 特性,专为 TensorFlow 用户设计,旨在保证 TensorFlow 生态中 Keras 的稳定性和最佳集成。你可以通过 tf.keras
或直接导入 tf_keras
来使用它。它与通过 pip install keras
安装的独立多后端 Keras (Keras Core / Keras 3) 是不同的包。