认识 TensorFlow 与 Keras:Google 出品的深度学习双子星
你会发现一个挺魔幻的事:2026 年了,技术圈里天天喊 "PyTorch 真香",可一旦落到真刀真枪的生产环境——Google 搜索、YouTube 推荐、Waymo 的自动驾驶——背后站着的,还是 TensorFlow。
更反直觉的是,很多人以为 "Keras 是 TensorFlow 里的一个小模块"。错。现在的 Keras 3 已经是一个能同时跑在 TensorFlow、JAX、PyTorch 三大框架上的独立多后端库了。这俩兄弟的关系,比大多数人想象的要精彩得多。
今天这篇,不跟你讲梯度下降的数学推导(讲了我自己也得现查),就帮你把这俩东西 "认个脸熟"——知道它们是什么、能干什么、新手怎么上手,就够了。
一句话立场:研究写新模型,PyTorch 确实爽;但你要的是 "训练一次、到处部署、常年不崩",TensorFlow + Keras 这套组合拳,到现在依然是工业界最稳的选择之一。
什么是 TensorFlow 与 Keras
TensorFlow 是 Google Brain 团队在 2015 年开源的数值计算与机器学习平台。它的核心是一堆能放在 CPU、GPU、甚至 TPU 上跑的多维数组(官方叫 tf.Tensor)。你写的是 Python,背后是庞大的 C++ 运行时在调度计算图。
从 2019 年的 TF 2.0 开始,它把 "即时执行(eager execution)" 设成默认,并正式把 Keras 收编成官方主推的高层 API——你不用再手写 Session 和占位符那种反人类的老式图了。
Keras 呢,口号是 "Deep learning for humans"(深度学习,为人而生)。它的基因就是:代码短、好看、好调、好部署。而 2024 年问世的 Keras 3 是个分水岭——它彻底独立成 pip install keras 一个包,一套模型代码,能在 TensorFlow、JAX、PyTorch 三个后端之间无缝切换。
简单类比:TensorFlow 是发动机和底盘,Keras 是那套让你轻松开车的仪表盘和方向盘。
它们有什么特点
TensorFlow 的硬核之处:
- 生产级稳定性:TF Serving、LiteRT(原 TFLite)、TF.js、TensorBoard、TFX 组成了从训练、可视化、部署到端侧推理的完整工具链
- Google 基础设施原生集成:TPU 训练、Vertex AI 托管训练与推理、Google Cloud 一条龙
- 一次训练,到处部署:统一的
SavedModel格式,服务端、浏览器(TF.js)、手机和微控制器(LiteRT)都能跑 - 最新版本:截至 2026 年,稳定版为 TensorFlow 2.21.0(2026 年 3 月发布),支持 Python 3.10–3.13,采用 Apache 2.0 开源协议
Keras 的讨喜之处:
- 代码量小、可读性高:几行就能搭一个 ResNet 出来,改起来不头疼
- 多后端自由:通过
KERAS_BACKEND环境变量在 TensorFlow / JAX / PyTorch 间切换,代码不用重写 - KerasHub 预训练模型库:Gemma、Llama、Stable Diffusion、Mistral 等主流模型开箱即用,还能直接
from_preset拉权重 - 最新版本:Keras 3.x 已完全独立,3.6.0+ 维持多后端设计,是 2026 年的主流选择
一个容易踩的坑:Keras 的后端是在导入时就定好的,不是调用
keras.config.backend()时才生效。想换后端,得在import keras之前设置KERAS_BACKEND环境变量,不然设置了也白搭。
都在哪用上了(真实案例 + 数据)
别以为这俩只是教科书里的玩具,它们现在就活在你每天用的产品里:
- Waymo 自动驾驶:官方明确用 Keras 驱动其自动驾驶车辆的感知模型训练
- CERN、NASA、NIH:这些顶级的科研与航天机构都用 Keras 做实验——没错,连大型强子对撞机(LHC)的处理管线里都有 Keras 的身影
- Google 自家产品:YouTube 的推荐、Google 搜索的排序,底层大量依赖 TensorFlow 的训练与 TF Serving 的推理
- 端侧落地:LiteRT 让模型能直接跑在 Android、iOS、嵌入式 Linux 甚至微控制器上,靠量化压缩把大模型塞进低功耗硬件
换句话说:你刷到的每一条 YouTube 视频、坐过的每一辆 Waymo,背后都有这俩兄弟在默默干活。
初体验:十分钟跑通第一个模型
先装 TensorFlow(顺带把 Keras 也装上):
pip install tensorflow keras验证一下:
import tensorflow as tf
print(tf.__version__) # 2.21.0来个最经典的 "Hello World"——用 Keras Sequential API 训练一个手写数字分类器:
import keras
from keras import layers, models
# 搭网络:输入 28x28 的图,两层卷积 + 全连接
inputs = keras.Input(shape=(28, 28, 1))
x = layers.Conv2D(32, 3, activation="relu")(inputs)
x = layers.MaxPooling2D(3)(x)
x = layers.Conv2D(64, 3, activation="relu")(x)
x = layers.GlobalMaxPooling2D()(x)
outputs = layers.Dense(10, activation="softmax")(x)
model = models.Model(inputs, outputs)
model.compile(optimizer="rmsprop",
loss="sparse_categorical_crossentropy",
metrics=["accuracy"])
model.summary()想试试 Keras 的多后端魔法?在导入前切到 JAX 后端,上面的代码一行都不用改:
export KERAS_BACKEND=jax # 可选: tensorflow / torch
python train.py想直接玩大模型?KerasHub 一行拉起 Gemma:
from keras_hub.models import CausalLM
model = CausalLM.from_preset("gemma2_instruct_2b_en", dtype="float16")
print(model.generate("用一句话解释什么是深度学习:", max_length=128))看到这里,你已经比 80% 只会 "pip install torch" 的人,更懂 Google 这套 AI 基础设施的全貌了。
进阶
更多开源技术干货和学习资料,关注公众号「遇码」,领取专属福利。
Gemini 中文文档