环境搭建:Anaconda安装、创建虚拟环境、PyTorch安装(CPU/GPU版本)、CUDA与cuDNN配置、验证环境

说实话,环境搭建是很多人入门深度学习的第一道坎。我见过不少同学,代码写得挺好,结果卡在装包上,一卡就是一整天。嗯,这一章我们就来把这套流程走通,从零搭出一个能跑YOLO的环境。

本章核心目标:在你的电脑上装好Anaconda、创建独立的虚拟环境、安装PyTorch(CPU或GPU版)、配置CUDA和cuDNN,最后跑一段代码验证环境是否正常。

2.1 为什么用Anaconda?

Anaconda是一个Python发行版,自带包管理工具conda。我个人习惯用conda管理虚拟环境,因为它能隔离不同项目的依赖。你想想看,项目A需要PyTorch 1.10,项目B需要PyTorch 2.0,如果装在同一套Python里,迟早会冲突。用虚拟环境就能各玩各的,互不干扰。

另外,conda还能直接装CUDA相关的包,比pip省心不少。我在项目中遇到过好几次,用pip装PyTorch GPU版时缺了CUDA动态库,换成conda就一次搞定。

2.2 安装Anaconda

去官网下载对应系统的安装包就行。Windows、Linux、macOS都有。安装时注意两点:

  • 安装路径不要有中文和空格——我见过有人装在“程序文件”目录下,后面各种报错。
  • 安装时勾选“Add Anaconda to my PATH environment variable”(Windows下可选,但勾了方便)。

装完后打开终端(Windows用Anaconda Prompt),输入:

conda --version

如果输出版本号,说明安装成功。我一般还会顺手更新一下conda:

conda update conda

2.3 创建虚拟环境

我们给YOLO单独建一个环境,名字就叫yolo_env,Python版本指定3.8或3.9。为什么选3.8?因为YOLOv5和YOLOv8官方测试时主要用3.8,兼容性最好。

conda create -n yolo_env python=3.8 -y

创建完成后,激活环境:

conda activate yolo_env

你会看到命令行前面多了(yolo_env)字样,说明已经进入虚拟环境了。退出环境用conda deactivate。

小技巧:每次打开新终端训练模型前,记得先conda activate yolo_env。我曾经忘了激活环境,直接在base里装包,结果项目依赖全乱了,最后重装了Anaconda。

2.4 安装PyTorch(CPU/GPU版本)

PyTorch的安装方式取决于你有没有NVIDIA显卡。先确认一下:

  • 有NVIDIA显卡:装GPU版,训练速度快10倍以上。
  • 没有NVIDIA显卡:装CPU版,能跑但慢,适合调试代码。

去PyTorch官网(pytorch.org)选择对应的配置,它会生成安装命令。我直接给两个常用命令:

GPU版(CUDA 11.8):

conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia -y

CPU版:

conda install pytorch torchvision torchaudio cpuonly -c pytorch -y

安装过程可能需要几分钟,取决于网络。如果下载慢,可以换国内镜像源,比如清华源:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

注意:不要混用conda和pip装PyTorch。我建议统一用conda,因为conda会自动处理CUDA依赖。如果conda装不上,再用pip,但一定要先conda remove pytorch清理干净。

2.5 CUDA与cuDNN配置

GPU版PyTorch需要CUDA和cuDNN。其实用conda安装PyTorch时,它会自动装好配套的CUDA和cuDNN。但如果你想手动控制版本,或者需要单独安装,可以按以下步骤来。

2.5.1 检查显卡驱动

先确认你的NVIDIA驱动支持CUDA。在终端输入:

nvidia-smi

你会看到类似这样的输出:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.105.17   Driver Version: 525.105.17   CUDA Version: 12.0     |
+-----------------------------------------------------------------------------+

注意看CUDA Version,它表示你的驱动最高支持到哪个CUDA版本。比如显示12.0,那你装CUDA 11.8或12.0都可以。

2.5.2 安装CUDA Toolkit

如果conda自动装的CUDA版本不对,或者你想用特定版本,可以手动装。去NVIDIA官网下载CUDA Toolkit 11.8(YOLO常用版本)。安装时选自定义安装,只勾选“CUDA”组件,别装驱动(驱动已经有了)。

装完后设置环境变量(Windows下自动配好了,Linux需要手动加):

export PATH=/usr/local/cuda-11.8/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH

2.5.3 安装cuDNN

cuDNN是NVIDIA的深度学习加速库。下载cuDNN需要注册NVIDIA账号,选对应CUDA 11.8的版本。下载后解压,把里面的文件复制到CUDA安装目录:

# Linux示例
sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda-11.8/include/
sudo cp cudnn-*-archive/lib/libcudnn* /usr/local/cuda-11.8/lib64/
sudo chmod a+r /usr/local/cuda-11.8/include/cudnn*.h /usr/local/cuda-11.8/lib64/libcudnn*

避坑指南:我曾经在Ubuntu上手动装cuDNN时,忘了给文件加执行权限,结果PyTorch调用cuDNN时报“cannot open shared object file”。后来用chmod a+r解决了。嗯,这种小细节最容易忽略。

2.6 验证环境

环境装好了,怎么知道能不能用?写几行Python代码验证一下。

激活虚拟环境,进入Python交互模式:

conda activate yolo_env
python

然后逐行输入以下代码:

import torch
print("PyTorch版本:", torch.__version__)
print("CUDA是否可用:", torch.cuda.is_available())
if torch.cuda.is_available():
    print("CUDA版本:", torch.version.cuda)
    print("cuDNN版本:", torch.backends.cudnn.version())
    print("显卡数量:", torch.cuda.device_count())
    print("显卡名称:", torch.cuda.get_device_name(0))

如果输出类似下面这样,说明环境配置成功:

PyTorch版本: 2.0.1
CUDA是否可用: True
CUDA版本: 11.8
cuDNN版本: 8700
显卡数量: 1
显卡名称: NVIDIA GeForce RTX 3060

如果torch.cuda.is_available()返回False,说明GPU没识别到。常见原因:

  • 装成了CPU版PyTorch——重新装GPU版。
  • CUDA版本不匹配——检查nvidia-smi显示的CUDA版本,装对应的PyTorch。
  • 驱动太旧——更新NVIDIA驱动。

重要:验证环境这一步不能跳过。我见过有人装完直接跑YOLO训练,跑了一天才发现用的是CPU,白白浪费十几个小时。花两分钟验证一下,后面省心很多。

2.7 知识结构总览

下面这张图把整个环境搭建的流程串起来了,你可以对照着检查自己走到哪一步了。

环境搭建完整流程 1. 安装Anaconda 2. 创建虚拟环境 3. 判断是否有NVIDIA显卡 4a. 安装GPU版PyTorch 4b. 安装CPU版PyTorch 5a. 配置CUDA+cuDNN 6. 验证环境 💡 关键检查点 torch.cuda. is_available() 必须返回True

2.8 常见问题速查表

问题现象 可能原因 解决方法
conda: command not found Anaconda未加入PATH 重新安装并勾选“Add to PATH”,或手动添加环境变量
torch.cuda.is_available()返回False 装了CPU版PyTorch,或CUDA版本不匹配 卸载重装GPU版,检查nvidia-smi显示的CUDA版本
安装PyTorch时下载慢 默认源在国外 换清华源或中科大源
导入torch报错DLL load failed 缺少Visual C++运行库(Windows) 安装Visual C++ Redistributable
cuDNN报错cannot open shared object file cuDNN文件权限或路径问题 检查LD_LIBRARY_PATH,用chmod a+r修复权限

2.9 我的个人建议

环境搭建这件事,一次配好,后面能省很多时间。我自己的习惯是:

  • 用conda统一管理,尽量不用pip装PyTorch。
  • 每个项目建独立环境,不要所有包都塞在base里。
  • 装完后立刻验证,别等到跑训练才发现问题。
  • 记录安装命令,下次换电脑或重装系统时直接复制粘贴。

嗯,环境搭好了,后面就可以正式开始玩YOLO了。记住,这一步虽然琐碎,但值得认真对待。我见过太多人因为环境问题浪费大量时间,希望你能一次搞定。