环境搭建: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 知识结构总览
下面这张图把整个环境搭建的流程串起来了,你可以对照着检查自己走到哪一步了。
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了。记住,这一步虽然琐碎,但值得认真对待。我见过太多人因为环境问题浪费大量时间,希望你能一次搞定。