AI 与模型

Windows 配置 TensorFlow GPU 的历史环境笔记(TF 2.10 分界)

原生 Windows 的官方 CUDA 支持停留在 TensorFlow 2.10,记录中英文文档差异以及 Conda、pip 锁定与 WSL2 Docker 的实测情况。

这是一份 2024 年在 Windows 11 上配置 TensorFlow GPU 训练环境时的版本备忘,主要针对 TensorFlow 2.10 / 2.11 平台支持策略分界 整理。新建训练环境现已优先使用 WSL2 或容器,旧项目复现时仍可按此核对版本范围。

1. 官方文档中的平台版本边界

当时查阅 TensorFlow 中文安装页,列出的版本对照表仍停留在 2.7.0。将地址末尾的 ?hl=zh-cn 改为 ?hl=en 切回英文文档后,顶部明确给出了平台限制:

GPU support on native-Windows is only available for 2.10 or earlier versions. Starting in TF 2.11, CUDA build is not supported for Windows. For using TensorFlow GPU on Windows, you will need to build/install TensorFlow in WSL2 or use tensorflow-cpu with TensorFlow-DirectML-Plugin.

即 2.10.0 是原生 Windows 最后一个提供官方 CUDA 构建的版本;2.11 及之后若需在 Windows 机器上使用 NVIDIA GPU,应转入 WSL2 或容器环境。

2. 三种配置路径的实测记录

  1. Conda 直接安装 tensorflow-gpu(不推荐):按旧教程执行 conda create -n tf-gpu tensorflow-gpu 后,运行时容易遇到旧版 TensorFlow 与新版 NumPy(1.20+ 移除 np.object)的依赖冲突,触发 AttributeError: module 'numpy' has no attribute 'object'。
  2. 原生 Windows 锁定 TF 2.10.0 + CUDA 11.2:仅当项目强依赖原生 Windows 进程且 2.10 算子够用时采用。手动安装对应版本的 CUDA 11.2 与 cuDNN 后,在独立虚拟环境中通过 pip 约束 NumPy 上界:
pip install "tensorflow-gpu==2.10.0" "numpy<1.24"
python -c "import tensorflow as tf; print(tf.__version__, tf.config.list_physical_devices('GPU'))"
  1. WSL2 + 官方 Docker GPU 镜像(推荐):在 Windows 11 宿主机安装 NVIDIA 显卡驱动并启用 WSL2 后端的 Docker Desktop 后,直接拉取官方镜像即可使用新版 TensorFlow,免去在宿主机维护多套旧版 CUDA 路径:
docker pull tensorflow/tensorflow:latest-gpu
docker run --gpus all -it --rm tensorflow/tensorflow:latest-gpu python -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"