核心要点

  • 主要支持 CPU、NVIDIA GPU(走 CUDA)、Google TPU 三类,TPU 需云端/Colab 环境

  • 用 with tf.device('/GPU:0') 手动放置算子,tf.config.list_physical_devices('GPU') 探测可用设备

  • 多卡训练靠 tf.distribute:MirroredStrategy 单机多卡、MultiWorker 多机、TPUStrategy 配 TPU

  • 训练在 GPU/TPU,边缘推理用 TFLite 跑 ARM CPU/DSP/NPU;TPU 一等支持是 TF 相对 PyTorch 的特色

标准回答

TensorFlow 支持多种计算设备

设备 说明
CPU 默认,任意平台
GPU NVIDIA CUDA GPU,/GPU:0
TPU Google 张量处理器,云端/Colab
多 GPU MirroredStrategy、MultiWorker

指定设备

python
with tf.device('/GPU:0'):
    y = tf.matmul(a, b)

探测tf.config.list_physical_devices('GPU')

分布式tf.distribute.MirroredStrategy() 数据并行多卡;TPU 用 TPUStrategyresolver

边缘:训练多在 GPU/TPU;TFLite 在 ARM CPU、DSP、NPU 推理。与 PyTorch(CUDA、MPS、ROCm)生态对比:TF 对 TPU 一等支持是独特优势。详见 深度学习训练技巧

常见误区

⚠️ 常见踩坑

有 GPU 未指定导致慢速 CPU 训练;多卡未用 Strategy 只用到一卡;本地环境声称用 TPU。

追问

追问 1GPU 内存不足(OOM)怎么办?

常见手段:调小 batch size、用混合精度(mixed_float16)、开启梯度累积模拟大 batch、用梯度检查点换显存;同时默认 TF 会独占全部显存,可设 set_memory_growth(gpu, True) 让其按需增长,避免一上来就占满。

追问 2TPU 和 GPU 训练差异?

TPU 是 Google 自研、为大矩阵乘和 XLA 编译优化的 ASIC,在大 batch、规则的密集计算上吞吐和性价比高,但要求模型/数据形状静态、对动态控制流不友好;GPU 通用灵活、生态成熟、适配各种算子和动态图。TPU 还依赖云端环境,本地一般用 GPU。

追问 3Mac Apple Silicon 能用 TF GPU 加速吗?

能。装 tensorflow-macos 加 tensorflow-metal 插件后,TF 会通过 Apple 的 Metal(PluggableDevice)使用 M 系列芯片的 GPU 加速,设备名通常显示为 GPU;但它不是 CUDA,部分算子或第三方库可能不被支持,需实测。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。

🛠️ AI 工具

  • Pytorch

    Meta 开源的深度学习框架,100K+ stars。以动态计算图和 Pythonic 风格著称,在学术界和工业界都有广泛应用,支持分布式训练、移动端部署和 ONNX 导出

  • Tensorflow

    全球最流行的机器学习框架之一,195K+ stars。Google 开源的端到端 ML 平台,支持 TensorFlow、Keras 等多种 API,覆盖深度学习、强化学习、移动端部署等全场景,是 AI 工程师的必备工具