Anaconda 搭建纯净 YOLO 训练环境(RTX3090 + Python3.10 + GPU+Ultralytics 版)

Anaconda 搭建纯净 YOLO 训练环境(RTX3090 + Python3.10 + GPU 版)操作文档

一、环境基础信息

组件 版本 / 配置 说明
显卡 NVIDIA RTX3090 24G 显存,支持 CUDA 11.8
Python 3.10 Anaconda 虚拟环境专属版本,避免系统环境冲突
PyTorch 2.0.0+cu118 GPU 版,适配 CUDA11.8,无 fbgemm.dll 依赖,稳定性强
Ultralytics 8.4.8 YOLO 核心框架,与 PyTorch 2.0.0+cu118 完美兼容
NumPy 1.26.4 1.x 系列稳定版,避免与 YOLO/PyTorch 2.x 版本冲突
操作系统 Windows 适配 RTX3090,规避多进程数据加载兼容性问题

二、环境搭建前置准备

  1. 确保已安装 Anaconda/Miniconda,且添加到系统环境变量
  2. 确保 NVIDIA 显卡驱动已更新,支持 CUDA 11.8(RTX3090 默认支持)
  3. 关闭系统 VPN / 代理、杀毒软件,避免网络下载中断或权限问题
  4. 清理系统用户目录冗余 Python 包(避免路径冲突):删除C:\Users\用户名\appdata\roaming\python\python310\site-packages下所有torch*numpy*ultralytics*相关文件夹

三、Anaconda 虚拟环境创建

3.1 打开 Anaconda Prompt

以管理员身份运行 Anaconda Prompt,默认进入base环境。

3.2 创建纯净 YOLO 虚拟环境

因清华源等镜像易出现连接重置问题,强制使用 Anaconda 官方源创建环境,执行命令:

bash

运行

复制代码
conda create -n yolo python=3.10 -y --override-channels -c defaults
  • 说明:--override-channels -c defaults 忽略现有镜像源,直接使用官方源,避免包元数据收集失败
  • 成功标识:终端最后显示环境激活 / 退出提示,无ConnectionResetError等网络错误

3.3 激活 YOLO 虚拟环境

创建完成后,立即激活环境(后续所有操作均在该环境下执行):

bash

运行

复制代码
conda activate yolo
  • 成功标识:命令行前缀从(base)变为(yolo)

四、核心依赖安装(GPU 版,适配 RTX3090)

4.1 安装 GPU 版 PyTorch 2.0.0+cu118

选择无 fbgemm.dll 依赖的稳定版本,直接从 PyTorch 官方源下载,执行命令:

bash

运行

复制代码
pip install torch==2.0.0+cu118 torchvision==0.15.1+cu118 torchaudio==2.0.1+cu118 --index-url https://download.pytorch.org/whl/cu118
  • 说明:该版本无需安装 VS Build Tools,彻底规避 dll 加载失败问题,适配 Windows+RTX3090

  • 安装完成后立即验证 GPU 版是否生效 (关键步骤,避免白装):

    bash

    运行

    复制代码
    python -c "import torch; print('CUDA是否可用:', torch.cuda.is_available(), '| PyTorch版本:', torch.__version__)"

    成功输出:CUDA是否可用: True | PyTorch版本: 2.0.0+cu118

4.2 安装兼容版 NumPy 1.26.4

卸载高版本 NumPy(若存在),安装1.x 系列黄金兼容版,避免与 YOLO/PyTorch 冲突,执行命令:

bash

运行

复制代码
pip uninstall numpy -y && pip install numpy==1.26.4 -i https://pypi.tuna.tsinghua.edu.cn/simple
  • 验证 NumPy 安装: bash

    运行

    复制代码
    python -c "import numpy; print('NumPy版本:', numpy.__version__)"

    成功输出:NumPy版本: 1.26.4

4.3 安装 Ultralytics 8.4.8(强制保留 GPU 版 PyTorch)

因 Pip 无法识别带+cu118后缀的 GPU 版 PyTorch,需跳过依赖检查安装,避免 GPU 版被替换为 CPU 版,执行命令:

bash

运行

复制代码
pip install ultralytics==8.4.8 -i https://pypi.tuna.tsinghua.edu.cn/simple --no-deps
  • 说明:--no-deps 仅安装 Ultralytics 本体,复用已安装的 GPU 版 PyTorch/NumPy,无依赖冲突风险

五、环境全量验证(确保 GPU 训练就绪)

执行一键验证命令,检查所有组件是否正常、GPU 是否可用、YOLO 模型是否能加载,命令:

bash

运行

复制代码
python -c "import torch; import numpy; import ultralytics; from ultralytics import YOLO; print('=== 环境验证结果 ==='); print('CUDA可用:', torch.cuda.is_available()); print('PyTorch版本:', torch.__version__); print('NumPy版本:', numpy.__version__); print('Ultralytics版本:', ultralytics.__version__); model=YOLO('yolov8n.pt'); print('YOLO模型加载成功!'); print('GPU设备信息:', torch.cuda.get_device_name(0))"

5.1 成功验证标准(缺一不可)

终端输出以下信息,无任何报错:

plaintext

复制代码
=== 环境验证结果 ===
CUDA可用: True
PyTorch版本: 2.0.0+cu118
NumPy版本: 1.26.4
Ultralytics版本: 8.4.8
YOLO模型加载成功!
GPU设备信息: NVIDIA GeForce RTX 3090

5.2 关键验证项说明

  • CUDA可用:True:确认 GPU 版 PyTorch 生效,RTX3090 被正确识别
  • YOLO模型加载成功:确认 Ultralytics 与 PyTorch/NumPy 兼容,无依赖问题
  • GPU设备信息:确认显卡型号为 RTX3090,避免设备识别错误

六、YOLO GPU 训练(适配 RTX3090 24G 显存)

6.1 编写训练脚本train.py

创建纯净化训练脚本,禁用多进程(Windows 专属稳定解),充分利用 RTX3090 大显存,代码如下:

python

运行

复制代码
# train.py - 适配Windows+RTX3090 24G的YOLO GPU训练脚本
from ultralytics import YOLO

# 加载YOLO模型(可替换为自定义训练的预训练模型,如yolo26n.pt)
model = YOLO("yolov8n.pt")

# 启动GPU训练(Windows必设workers=0,彻底杜绝DataLoader进程错误)
results = model.train(
    data="coco8.yaml",    # 数据集配置文件(根据实际数据集修改)
    epochs=100,           # 训练轮数
    imgsz=640,            # 训练图像分辨率,RTX3090 24G可保持640
    batch=32,             # 批次大小,最大化利用24G显存
    device=0,             # 独占RTX3090 GPU(设备ID为0)
    workers=0,            # Windows核心配置:禁用多进程,单进程加载更稳定
    project="runs/train", # 训练结果保存根目录
    name="exp"            # 训练实验名称,结果保存在runs/train/exp
)

6.2 启动 GPU 训练

yolo环境下,切换到训练脚本目录,执行命令:

bash

运行

复制代码
python train.py

6.3 训练成功核心标识

终端无任何DataLoaderdll版本冲突等错误,显示以下信息并进入稳定 Epoch 迭代:

plaintext

复制代码
Ultralytics 8.4.8  Python-3.10.19 torch-2.0.0+cu118 CUDA:0 (NVIDIA GeForce RTX 3090, 24575MiB)
NumPy version: 1.26.4
Transferred 708/708 items from pretrained weights
YOLOv8n summary: 218 layers, 3,157,200 parameters, 3,157,200 gradients, 8.7 GFLOPs
AMP checks passed ✅
Epoch   1/100: 100%|██████████| xx/xx [00:xx<00:00, xxit/s, loss=xx.xx, lr=0.01]
  • 关键标识:CUDA:0 (NVIDIA GeForce RTX 3090, 24575MiB) 确认 GPU 被调用,24G 显存正常识别
  • 训练过程:Epoch 持续迭代,无进程退出、显存不足等错误,RTX3090 全程满负载运行

七、训练模型导出(ONNX 格式,适配部署)

7.1 编写导出脚本export.py

导出训练好的最优模型best.pt为 ONNX 格式(跨平台部署通用),强制调用 GPU 加速导出,代码如下:

python

运行

复制代码
# export.py - YOLO模型导出为ONNX格式(适配RTX3090 GPU)
from ultralytics import YOLO

# 加载训练好的最优模型(根据实际训练结果路径修改)
model = YOLO("runs/train/exp/weights/best.pt")

# 导出ONNX模型,强制使用GPU,开启轻量化
model.export(
    format="onnx",        # 导出跨平台ONNX格式
    device=0,             # 调用RTX3090 GPU加速导出
    imgsz=640,            # 与训练分辨率一致
    simplify=True,        # 开启模型轻量化,减小体积提升推理速度
    opset=12              # 适配onnx>=1.12.0版本
)

print("模型导出成功!ONNX文件保存在 best.pt 同目录下(best.onnx)")

7.2 执行导出命令

yolo环境下,切换到导出脚本目录,执行命令:

bash

运行

复制代码
python export.py

7.3 导出说明

  1. 首次导出时,Ultralytics 会自动检测并安装 ONNX 相关依赖(onnx>=1.12.0onnxslimonnxruntime-gpu),属于正常流程,无需干预

  2. 导出成功后,ONNX 文件保存在runs/train/exp/weights/目录下,与best.pt同路径

  3. 若自动安装依赖失败,手动执行以下命令安装: bash

    运行

    复制代码
    pip install onnx>=1.12.0,<2.0.0 onnxslim>=0.1.71 onnxruntime-gpu==1.17.1 -i https://pypi.tuna.tsinghua.edu.cn/simple

7.4 导出模型验证

验证 ONNX 模型是否可用,确保部署无问题,执行以下代码:

python

运行

复制代码
# 验证ONNX模型加载与GPU推理
import onnxruntime as ort
import numpy as np

# 加载ONNX模型,指定RTX3090 GPU推理
ort_sess = ort.InferenceSession(
    "runs/train/exp/weights/best.onnx",
    providers=['CUDAExecutionProvider', 'CPUExecutionProvider']
)

# 构造测试输入(与训练/导出分辨率一致:1,3,640,640)
test_input = np.random.randn(1, 3, 640, 640).astype(np.float32)
# 执行GPU推理
output = ort_sess.run(None, {ort_sess.get_inputs()[0].name: test_input})
print("ONNX模型GPU推理成功!输出形状:", output[0].shape)

成功输出:ONNX模型GPU推理成功!输出形状: (1, 300, 6)(输出形状与模型配置一致)

八、常见问题与解决方案(全程避坑)

问题现象 核心原因 解决方案
ConnectionResetError 10054(创建环境时) 清华源等镜像访问不稳定 使用官方源创建环境:conda create -n yolo python=3.10 -y --override-channels -c defaults
fbgemm.dll 加载失败 高版本 PyTorch 依赖底层 C++ 编译工具 安装无 dll 依赖的 PyTorch 2.0.0+cu118(本文推荐版本)
Numpy is not available/NumPy 2.x 版本冲突 NumPy 版本过高(2.x),与 YOLO 不兼容 降级至 NumPy 1.26.4:pip install numpy==1.26.4
GPU版PyTorch被替换为CPU版(安装 Ultralytics 后) Pip 无法识别+cu118后缀,误判版本 --no-deps安装 Ultralytics:pip install ultralytics==8.4.8 --no-deps
DataLoader worker 退出意外 Windows 多进程兼容性差,进程数过高 训练脚本中设置workers=0(禁用多进程,本文推荐)
pin_memory/persistent_workers 不是合法参数 该参数是 PyTorch 底层参数,非 YOLO 入参 删除非法参数,仅保留 YOLO 合法参数(见本文训练脚本)
CUDA is False(验证时) PyTorch 安装为 CPU 版,或显卡驱动不兼容 重新安装 GPU 版 PyTorch 2.0.0+cu118,更新显卡驱动

九、环境关键特性总结

  1. 纯净无冲突:基于 Anaconda 虚拟环境,与系统 Python 环境完全隔离,无冗余包干扰
  2. GPU 专属优化:全程使用 PyTorch 2.0.0+cu118 GPU 版,充分利用 RTX3090 24G 显存
  3. Windows 适配 :禁用多进程(workers=0),彻底杜绝 DataLoader 进程错误,训练稳定无中断
  4. 版本全兼容:PyTorch 2.0.0+cu118 + Ultralytics 8.4.8 + NumPy 1.26.4,无任何版本冲突
  5. 部署友好:支持导出 ONNX 轻量化模型,适配 Python/C++/TensorRT 等多平台部署,可利用 RTX3090 GPU 推理

十、后续操作建议

  1. 训练过程中,训练结果(模型、日志、损失曲线)自动保存在runs/train/exp目录,best.pt为每轮验证的最优模型
  2. 若需调整训练参数,仅修改train.py中的batchepochsimgsz等 YOLO 合法参数,无需改动其他配置
  3. 部署时优先使用导出的 ONNX 模型,配合onnxruntime-gpu实现 RTX3090 GPU 加速推理,推理速度远高于 CPU
  4. 若需重新搭建环境,直接按本文步骤执行,无需额外配置,全程可复现
相关推荐
Together_CZ16 天前
YOLO26模型今日发布,致力于打造端到端计算范式的端侧AI新标杆
人工智能·yolo·目标检测·ultralytics·yolo26·致力于打造端到端计算范式·端侧ai新标杆
侯喵喵3 个月前
Jetson orin agx配置ultralytics 使用docker或conda
yolo·docker·1024程序员节·ultralytics
淬炼之火4 个月前
基于pycharm和anaconda的yolo简单部署测试
python·深度学习·yolo·pycharm·ultralytics
kngines9 个月前
开源项目实战学习之YOLO11:ultralytics-cfg-models-fastsam(九)
ultralytics·clip模型·yolo11·fastsam·vit-b/32
云卷云舒___________10 个月前
✅ Ultralytics YOLO 训练(Train)时实时获取 COCO 指标(AP):2025最新配置与代码详解 (小白友好 + B站视频)
人工智能·深度学习·yolo·模型训练·ultralytics·cocoapi·cooc指标
云卷云舒___________10 个月前
✅ Ultralytics YOLO验证(Val)时自动输出COCO指标(AP):2025最新配置与代码详解 (小白友好 + B站视频)
人工智能·yolo·模型评估·指标·ultralytics·coco api·pycocotools
云卷云舒___________10 个月前
【Ultralytics YOLO COCO 评估脚本 | 获得COCO评价指标】
yolo·coco·ultralytics
云卷云舒___________1 年前
【保姆级视频教程(二)】YOLOv12训练数据集构建:标签格式转换-划分-YAML 配置 避坑指南 | 小白也能轻松玩转目标检测!
人工智能·yolo·目标检测·数据集·ultralytics·小白教程·yolov12
EelBarb1 年前
YOLO11/ultralytics:环境搭建
python·yolo·ultralytics