有NVIDIA显卡且nvidia-smi显示CUDA Version≥11.8→装对应pytorch-cuda版本;无NVIDIA或nvidia-smi报错/无输出→装CPU版;conda安装必须同时指定-c pytorch和-c nvidia通道,否则默认降级为CPU版。

直接装 PyTorch GPU 版,绝大多数情况不需要手动装 CUDA 或 cuDNN —— PyTorch 官方 conda 包已自带运行时依赖,硬装反而容易冲突。
怎么判断该装 CPU 还是 GPU 版
关键看 nvidia-smi 输出右上角的 CUDA Version(不是驱动版本,是显卡支持的最高 CUDA 运行时版本):
- 输出显示
CUDA Version: 12.1或更高 → 优先用pytorch-cuda=12.1 - 输出是
CUDA Version: 11.8→ 选pytorch-cuda=11.8,别硬上 12.x - 没输出、报错、或显卡是 AMD / Intel 核显 → 只能装 CPU 版,命令里去掉
pytorch-cuda参数
注意:nvidia-smi 显示的是驱动附带的 CUDA 运行时能力,不是你本地是否装了 nvcc。99% 的用户根本不需要装 CUDA Toolkit。
conda install 命令里为什么要有 -c pytorch -c nvidia
PyTorch 的 GPU 包(含 pytorch-cuda)不在 conda 默认源,也不在 conda-forge,必须显式指定通道:
-
-c pytorch:提供pytorch、torchvision、torchaudio主体包 -
-c nvidia:提供pytorch-cuda=xx.x这类 CUDA 运行时绑定包(从 2023 年底起强制要求) - 漏掉
-c nvidia,conda 会退回到 CPU 版,且不报错 —— 这是最常见的“明明写了 GPU 却没装上”的原因
正确示例(CUDA 12.1):conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
为什么 import torch 后 torch.cuda.is_available() 返回 False
这不是安装失败,而是运行时识别失败,常见原因有:
- 没激活目标环境:确认命令行前缀是
(your_env_name),不是(base) - 显卡被其他程序占用(如远程桌面、游戏、WSL2):重启系统或关掉占用进程再试
- Windows 上用了 WSL2:WSL2 不支持直通 NVIDIA GPU,必须在原生 Windows 环境中运行
- 显卡算力太低(如 GTX 650、GT 730):这些卡算力 pytorch-cuda=11.8
验证命令必须在 Python 解释器内逐行执行:import torchprint(torch.cuda.device_count())print(torch.cuda.is_available())
清华镜像加速但装不上 GPU 版?删掉自定义 channels
很多教程教你在 .condarc 里加一堆清华源,结果反而导致 conda 优先从 defaults 或 conda-forge 拉 CPU 版 —— 因为那些源不托管 pytorch-cuda 包。
- 临时解决:运行安装命令前,先清空 channel 优先级:
conda config --remove-key channels - 长期建议:只保留必要源,比如:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/mainconda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorchconda config --set channel_priority strict
最稳的方式,永远是去 PyTorch 官网 选好配置后复制生成的命令,别手改。


















