标准回答
TensorFlow 支持多种计算设备:
| 设备 | 说明 |
|---|---|
| CPU | 默认,任意平台 |
| GPU | NVIDIA CUDA GPU,/GPU:0 |
| TPU | Google 张量处理器,云端/Colab |
| 多 GPU | MirroredStrategy、MultiWorker |
指定设备:
with tf.device('/GPU:0'):
y = tf.matmul(a, b)探测:tf.config.list_physical_devices('GPU')
分布式:tf.distribute.MirroredStrategy() 数据并行多卡;TPU 用 TPUStrategy 与 resolver。
边缘:训练多在 GPU/TPU;TFLite 在 ARM CPU、DSP、NPU 推理。与 PyTorch(CUDA、MPS、ROCm)生态对比:TF 对 TPU 一等支持是独特优势。详见 深度学习训练技巧。
常见误区
⚠️ 常见踩坑
有 GPU 未指定导致慢速 CPU 训练;多卡未用 Strategy 只用到一卡;本地环境声称用 TPU。
追问
追问 1:GPU 内存不足(OOM)怎么办?
常见手段:调小 batch size、用混合精度(mixed_float16)、开启梯度累积模拟大 batch、用梯度检查点换显存;同时默认 TF 会独占全部显存,可设 set_memory_growth(gpu, True) 让其按需增长,避免一上来就占满。
追问 2:TPU 和 GPU 训练差异?
TPU 是 Google 自研、为大矩阵乘和 XLA 编译优化的 ASIC,在大 batch、规则的密集计算上吞吐和性价比高,但要求模型/数据形状静态、对动态控制流不友好;GPU 通用灵活、生态成熟、适配各种算子和动态图。TPU 还依赖云端环境,本地一般用 GPU。
追问 3:Mac Apple Silicon 能用 TF GPU 加速吗?
能。装 tensorflow-macos 加 tensorflow-metal 插件后,TF 会通过 Apple 的 Metal(PluggableDevice)使用 M 系列芯片的 GPU 加速,设备名通常显示为 GPU;但它不是 CUDA,部分算子或第三方库可能不被支持,需实测。
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。
📰 AI 资讯
🛠️ AI 工具
- Pytorch
Meta 开源的深度学习框架,100K+ stars。以动态计算图和 Pythonic 风格著称,在学术界和工业界都有广泛应用,支持分布式训练、移动端部署和 ONNX 导出
- Tensorflow
全球最流行的机器学习框架之一,195K+ stars。Google 开源的端到端 ML 平台,支持 TensorFlow、Keras 等多种 API,覆盖深度学习、强化学习、移动端部署等全场景,是 AI 工程师的必备工具