使用mmdetection项目进行训练记录

open-mmlab/OpenMMLabCourse:OpenMMLab课程索引及相关内容

MMDetection 环境搭建保姆级指南(支持50系列显卡)_mmdetection windows安装-CSDN博客

本地编译mmcv-ful、mmdet、mmpose等老版本_50系列显卡安装mmcv-CSDN博客

只能说问AI有AI的好处,但是查资料还是不能只依赖ai,生成的信息毕竟不是很实时的,而且可能就是来回进行修改,并且他每次都会和你说这次一定没问题,AI会惩罚每一个不认真学习的人。

当前系统是WIN11,RTX 5060,CUDA 12.8,python 3.9,Torch3.8,mmcv 2.2.0,mmdetection 3.3.0.

安装遇到的问题是5060的架构需要Torch在2.5以上,但是mmcv安装Windows下找到最高是2.3.x,如果是问AI大概率就是让你直接使用命令行安装(如pip install mmcv==2.2.0 -f https://download.openmmlab.com/mmcv/dist/cu121/torch2.3/index.html),直接访问这个网站是存在的,但是替换成CUDA12.8以及torch2.5之后就会发现网址显示"此 XML 文件似乎没有与之关联的任何样式信息。",所以只能通过源码构建。but这个时候AI会让你删掉当前环境的torch,让你重新安装低版本的torch,最后的结果就是pytorch也无法使用,于是当前的思路就是先根据GPU的型号确定CUDA和torch的版本,之后再通过源码安装mmcv。

安装Anaconda

这个看个人习惯,我平时使用的是conda来进行环境管理。

2024年最新版Anaconda3的安装配置及使用教程(非常详细),从零基础入门到精通,看完这一篇就够了(附安装包)-CSDN博客

安装CUDA和cuDNN

CUDA和cuDNN的安装_cuda12.8对应的cudnn-CSDN博客

download.pytorch.org/whl/cu128/torch/

CUDA GPU Compute Capability | NVIDIA Developer

也可以在命令行执行下面这条命令(这个算力我没弄懂)。

查询 NVIDIA GPU 的 计算能力(Compute Capability)并以 CSV 格式显示结果

bash 复制代码
 nvidia-smi --query-gpu=compute_cap --format=csv

显示当前系统中 NVIDIA CUDA 编译器的版本信息。

bash 复制代码
nvcc -V

监控和管理 NVIDIA GPU 设备。

bash 复制代码
nvidia-smi

安装Git

Git - Install for Windowshttps://git-scm.com/install/windowsGit基本使用(很详细)-CSDN博客https://blog.csdn.net/qq_45796592/article/details/128953729?ops_request_misc=elastic_search_misc&request_id=468c0d2ecd7ad36f6ef0335ed9fea595&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-2-128953729-null-null.142^v102^pc_search_result_base7&utm_term=git&spm=1018.2226.3001.4187如果不安装这个也可以手动访问网址进行下载(安装时,勾选将git添加到Path,如果忘记勾选需要手动配置环境变量)。

安装Visual Studio 2022

https://pan.baidu.com/s/1omTYg7w0pftwD4PdtVtofw?pwd=5566https://pan.baidu.com/s/1omTYg7w0pftwD4PdtVtofw?pwd=5566这个我一开始就是用的2022,mmcv提到的是2019版本的,我没试过。

安装"使用C++的桌面开发",下载安装可以设置一下位置,有些位置不能修改就是必须要安装在C盘。

安装python3.9

我这里使用的是3.9版本的python环境。

名字可以根据命名规范来起,尽量和项目是相关的。

使用 conda 包管理器创建一个新的虚拟环境,环境名称为 mmcv,并指定在该环境中安装 Python 3.9版本,同时自动确认创建操作。

bash 复制代码
conda create -n mmcv python=3.9 -y

激活名为 mmcv 的 Conda 虚拟环境。

bash 复制代码
conda activate mmcv 

退出当前激活的环境(如果需要)

bash 复制代码
 conda deactivate

查看所有conda环境(如果需要)

bash 复制代码
conda info --envs

永久删除mmcv环境(如果需要)

bash 复制代码
conda remove -n mmcv --all -y

安装pytorch

开始https://pytorch.org/get-started/locally/

使用 pip 从 PyTorch 官方指定的索引地址安装适用于 CUDA 12.8 版本的 PyTorch 和 torchvision 包 。(我使用PyTorch 2.10.0版本出现ninja 编译失败以及_ext 模块缺失,所以我这里使用PyTorch 2.8.0

bash 复制代码
pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu128

阿里云镜像

bash 复制代码
pip3 install torch torchvision -f https://mirrors.aliyun.com/pytorch-wheels/cu128/

上海交通大学镜像

bash 复制代码
pip3 install torch torchvision -f https://mirror.sjtu.edu.cn/pytorch-wheels/cu128
# 或者使用通用的索引页
pip3 install torch torchvision -f https://mirror.sjtu.edu.cn/pytorch-wheels/torch_stable.html

快速检查 PyTorch 及其相关组件是否已安装及其版本。

bash 复制代码
pip list | findstr torch

torch 2.8.0+cu128
torchvision 0.23.0+cu12

验证 PyTorch 及其 GPU 支持是否安装正确(运行代码)。

python 复制代码
import torch, torchvision
print(torch.__version__)
print(torch.version.cuda)
print(torch.cuda.is_available()) 
print(torch.cuda.get_device_name(0)) 

2.8.0+cu128
12.8
True
NVIDIA GeForce RTX 5060 Laptop GPU

安装mmcv

从源代码构建 MMCV --- mmcv 2.2.0 文档

从这里看到最高torch是2.3.x。

克隆仓库

bash 复制代码
git clone https://github.com/open-mmlab/mmcv.git
cd mmcv

如果网络太差或者没有安装Git也可以手动下载解压,下载完是mmcv-main.zip,我解压后会把-main删除,保留"mmcv"。之后就是命令行执行cd mmcv。

open-mmlab/mmcv:OpenMMLab计算机视觉基金会https://github.com/open-mmlab/mmcv

安装并加快编译速度ninja psutil

bash 复制代码
pip install -r requirements/optional.txt

设置MSVC编译器

设置环境变量,添加到 ,这样它将在提示词中显示,如下所示。C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\bin\Hostx86\x64 PATH cl.exe.

我是使用Everything软件搜索cl.exe就出来了,我的路径是D:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.44.35207\bin\Hostx64\x86。Windows设置环境变量就是此电脑(右键)->点击"属性"进入"系统信息"窗口->点击"高级系统设置"进入"系统属性"窗口->点击"环境变量"进入"环境变量"窗口->在"系统变量"里面找到"Path"->点击"新建"后输入cl.exe的路径(不包含cl.exe)->一直点击"确定"(详细环境变量设置可以自行百度)。

bash 复制代码
cl

(mmcv) PS E:\code\OpenMMLabCourse\mmcv> cl

用于 x86 的 Microsoft (R) C/C++ 优化编译器 19.44.35221 版

版权所有(C) Microsoft Corporation。保留所有权利。

用法: cl [ 选项... ] 文件名... [ /link 链接选项... ]

CUDA工具包设置

将当前会话中的 CUDA_HOME 环境变量指向指定的 CUDA 12.8 安装路径。

bash 复制代码
$env:CUDA_HOME = "D:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8"

设置CUDA目标拱

设置 PyTorch 编译 CUDA 扩展时目标 GPU 架构的环境变量。

bash 复制代码
$env:TORCH_CUDA_ARCH_LIST = "12.0"
$env:TORCH_DISABLE_DYNAMO = "1"

构建与安装

需要先设置CUDA的相关信息,要不然安装的是cpu版本的mmcv。

bash 复制代码
python setup.py build_ext -j4  

(mmcv) PS E:\code\OpenMMLabCourse\mmcv> python setup.py build_ex

Traceback (most recent call last):

File "E:\code\OpenMMLabCourse\mmcv\setup.py", line 5, in <module>

from pkg_resources import DistributionNotFound, get_distribution, parse_version

ModuleNotFoundError: No module named 'pkg_resources'

补一个安装"python -m pip install setuptools==69.5.1 --upgrade --force-reinstall ",第一次都没问题,重新弄一次到处是问题(这里不确定是不是PyTorch版本问题导致的)。

bash 复制代码
python -c "from 
pkg_resources import DistributionNotFound, get_distribution, parse_version; print('✅ pkg_resources 模块导入成功!')"  

<string>:1: DeprecationWarning: pkg_resources is deprecated as

an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html

✅ pkg_resources 模块导入成功!

之后重新执行"python setup.py build_ext ",这个过程会输出很多警告,不需要管,构建需要一段时间。

正在创建库 E:\code\OpenMMLabCourse\mmcv\build\temp.win-amd64

-cpython-39\Release\mmcv\ops\csrc\pytorch\cpu\_ext.cp39-win_am

d64.lib 和对象 E:\code\OpenMMLabCourse\mmcv\build\temp.win-amd

64-cpython-39\Release\mmcv\ops\csrc\pytorch\cpu\_ext.cp39-win_amd64.exp
正在生成代码
已完成代码的生成

bash 复制代码
python setup.py develop

中途出现File "D:\ProgramData\anaconda3\envs\mmcv\lib\site-packages\setuptools\command\develop.py", line 39, in run subprocess.check_call(cmd) File "D:\ProgramData\anaconda3\envs\mmcv\lib\subprocess.py", line 373, in check_call raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['D:\\ProgramData\\ana conda3\\envs\\mmcv\\python.exe', '-m', 'pip', 'install', '-e', '.', '--use-pep517']' returned non-zero exit status 1.

bash 复制代码
pip install 'setuptools<60'                                  

我觉得就是我当前网络不好,这个第一次明明是没有问题的,第二次反而出现一些包安装网络超时,把报错的地方单独安装了一遍,重新运行"python setup.py develop"。

bash 复制代码
pip install regex==2023.12.25 -i https://mirrors.aliyun.com/pypi/simple/ --user 
pip install opencv-python==4.8.1.78 -i https://mirrors.aliyun.com/pypi/simple/                             
pip install addict mmengine>=0.3.0 yapf numpy==1.26.4 cython setuptools_scm -i https://mirrors.aliyun.com/pypi/simple/ --timeout 120

Using d:\programdata\anaconda3\envs\mmcv\lib\site-packages

Searching for six==1.17.0

Best match: six 1.17.0

Adding six 1.17.0 to easy-install.pth file

Using d:\programdata\anaconda3\envs\mmcv\lib\site-packages

Finished processing dependencies for mmcv==2.2.0

bash 复制代码
python .dev_scripts/check_installation.py

(mmcv) PS E:\code\OpenMMLabCourse\mmcv> python .dev_scripts/check_installation.py

Start checking the installation of mmcv ...

CPU ops were compiled successfully.

CUDA ops were compiled successfully.

mmcv has been installed successfully.

Environment information:


sys.platform: win32

Python: 3.9.23 | packaged by conda-forge | (main, Jun 4 2025, 17:49:16) [MSC v.1929 64 bit (AMD64)]

CUDA available: True

MUSA available: False

numpy_random_seed: 2147483648

GPU 0: NVIDIA GeForce RTX 5060 Laptop GPU

CUDA_HOME: D:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8

NVCC: Cuda compilation tools, release 12.8, V12.8.61

MSVC: 用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.44.35221 版

GCC: n/a

PyTorch: 2.8.0+cu128

PyTorch compiling details: PyTorch built with:

  • C++ Version: 201703

  • MSVC 193833145

  • Intel(R) oneAPI Math Kernel Library Version 2025.2-Product Build 20250620 for Intel(R) 64 architecture applications

  • Intel(R) MKL-DNN v3.7.1 (Git Hash 8d263e693366ef8db40acc569cc7d8edf644556d)

  • OpenMP 2019

  • LAPACK is enabled (usually provided by MKL)

  • CPU capability usage: AVX512

  • CUDA Runtime 12.8

  • NVCC architecture flags: -gencode;arch=compute_61,code=sm_

61;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_7

5,code=sm_75;-gencode;arch=compute_80,code=sm_80;-gencode;arch

=compute_86,code=sm_86;-gencode;arch=compute_90,code=sm_90;-ge

ncode;arch=compute_100,code=sm_100;-gencode;arch=compute_120,code=sm_120

  • CuDNN 91.0.2 (built against CUDA 12.9)

  • Magma 2.5.4

  • Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, COMMIT_

SHA=a1cb3cc05d46d198467bebbb6e8fba50a325d4e7, CUDA_VERSION=12.

8, CUDNN_VERSION=9.10.2, CXX_COMPILER=C:/actions-runner/_work/

pytorch/pytorch/pytorch/.ci/pytorch/windows/tmp_bin/sccache-cl

.exe, CXX_FLAGS=/DWIN32 /D_WINDOWS /EHsc /Zc:__cplusplus /bigo

bj /FS /utf-8 -DUSE_PTHREADPOOL -DNDEBUG -DUSE_KINETO -DLIBKIN

ETO_NOROCTRACER -DLIBKINETO_NOXPUPTI=ON -DUSE_FBGEMM -DUSE_XNN

PACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE /wd4624 /wd4068 /wd4067

/wd4267 /wd4661 /wd4717 /wd4244 /wd4804 /wd4273, LAPACK_INFO=

mkl, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, TORCH_VERSION=2.8.0, U

SE_CUDA=ON, USE_CUDNN=ON, USE_CUSPARSELT=OFF, USE_GFLAGS=OFF,

USE_GLOG=OFF, USE_GLOO=ON, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=

OFF, USE_NCCL=OFF, USE_NNPACK=OFF, USE_OPENMP=ON, USE_ROCM=OFF, USE_ROCM_KERNEL_ASSERT=OFF, USE_XCCL=OFF, USE_XPU=OFF,

TorchVision: 0.23.0+cu128

OpenCV: 4.8.1

MMEngine: 0.10.7

MMCV: 2.2.0

MMCV Compiler: MSVC 194435221

MMCV CUDA Compiler: 12.8


也有使用开发模式安装的(如果需要,这个没有单独验证,不确定能不能安装)。

bash 复制代码
pip install -e .

mmcv的版本可以在mmcv/mmcv/version.py里面看到(因为他会生成一些文件,所以之后如果创建新的环境需要用到mmcv就需要重新复制一份mmcv,然后重复进行上述的操作,不然之前已经配置好的环境可能会报错)。

清除之前的构建残留

bash 复制代码
Remove-Item -Recurse -Force build -ErrorAction SilentlyContinue
Remove-Item -Recurse -Force mmcv/_ext.* -ErrorAction SilentlyContinue

安装mmdetection

开始你的第一步 --- MMDetection 3.3.0 文档

open-mmlab/mmdetection: OpenMMLab Detection Toolbox and Benchmark

克隆仓库

bash 复制代码
git clone https://github.com/open-mmlab/mmdetection.git
cd mmdetection

安装

bash 复制代码
pip install -v -e .

Installed e:\code\openmmlabcourse\mmdetection

Successfully installed mmdet pycocotools-2.0.11 scipy-1.13.1 shapely-2.0.7 terminaltables-3.1.10 tqdm-4.67.3

验证安装

安装 mim 工具

bash 复制代码
pip install openmim -i https://mirrors.aliyun.com/pypi/simple/

验证 mim 是否安装成功

bash 复制代码
mim --version

mim, version 0.3.9

下载配置文件和模型权重文件

bash 复制代码
mim download mmdet --config rtmdet_tiny_8xb32-300e_coco --dest .

rtmdet_tiny_8xb32-300e_coco_20220902_112414-78e30dcc.pth exists in E:\code\OpenMMLabCourse\mmdetection

Successfully dumped rtmdet_tiny_8xb32-300e_coco.py to E:\code\OpenMMLabCourse\mmdetection

如果运行代码还是报错可以关闭编译器或者重启内核重新运行。

python 复制代码
import sys
import torch
import mmcv
import mmdet

# 仅打印实际环境信息,兼容所有 MMCV 2.2.0 版本(CPU/GPU)
print("===== 实际环境信息 =====")
# Python 信息
print(f"Python 版本: {sys.version.split()[0]}")
# PyTorch & CUDA 信息
print(f"PyTorch 版本: {torch.__version__}")
print(f"CUDA 是否可用 (PyTorch): {torch.cuda.is_available()}")
print(f"PyTorch 编译的 CUDA 版本: {torch.version.cuda}")
# GPU 信息(若CUDA可用)
if torch.cuda.is_available():
    print(f"GPU 型号: {torch.cuda.get_device_name(0)}")
    print(f"GPU 数量: {torch.cuda.device_count()}")
# MMCV 信息(兼容 CPU/GPU 版本)
print(f"MMCV 版本: {mmcv.__version__}")
# 兼容判断 MMCV CUDA 相关属性
if hasattr(mmcv, 'has_cuda'):
    print(f"MMCV CUDA 算子是否可用: {mmcv.has_cuda}")
elif hasattr(mmcv, 'ops') and hasattr(mmcv.ops, 'is_available'):
    print(f"MMCV CUDA 算子是否可用: {mmcv.ops.is_available()}")
else:
    print(f"MMCV CUDA 算子是否可用: 未检测到(可能为CPU版本)")
# 兼容获取 MMCV 编译信息
try:
    print(f"MMCV 编译的 CUDA 版本: {mmcv.get_compile_cuda_version()}")
except AttributeError:
    print(f"MMCV 编译的 CUDA 版本: 未编译 CUDA(CPU版本)")
try:
    print(f"MMCV 编译的 PyTorch 版本: {mmcv.get_compile_version()}")
except AttributeError:
    print(f"MMCV 编译的 PyTorch 版本: 无法获取(CPU版本)")
# MMDetection 信息
print(f"MMDetection 版本: {mmdet.__version__}")
print("===== 信息打印完成 =====")

===== 实际环境信息 =====

Python 版本: 3.9.23

PyTorch 版本: 2.8.0+cu128

CUDA 是否可用 (PyTorch): True

PyTorch 编译的 CUDA 版本: 12.8

GPU 型号: NVIDIA GeForce RTX 5060 Laptop GPU

GPU 数量: 1

MMCV 版本: 2.2.0

MMCV CUDA 算子是否可用: 未检测到(可能为CPU版本)

MMCV 编译的 CUDA 版本: 未编译 CUDA(CPU版本)

MMCV 编译的 PyTorch 版本: 无法获取(CPU版本)

MMDetection 版本: 3.3.0

===== 信息打印完成 =====

这个输出使用的是cpu,但是运行确实可以用gpu跑起来(参考lec4.ipynb里面的代码进行修改)。

这里自己还没弄懂,感觉还没用到mmdetection,目前感觉都是AI生成的代码,并没有使用到mmdetection里面的模版。

总结

当前还在摸索中,目前只会通过AI修改运行出OpenMMLab里面的示例代码,正在摸索复现论文,最大的感受还是AI只是辅助,终究还是要自己查找资料来理解学习。

相关推荐
newbiai1 小时前
TikTok矩阵账号引流怎么解决效率低成本高?
python·线性代数·矩阵
深蓝电商API2 小时前
结构化数据提取:XPath vs CSS 选择器对比
爬虫·python
SCBAiotAigc2 小时前
2026.2.25:conda与uv并存时,如何取消base激活
人工智能·python·conda·uv
wanderful_2 小时前
Django 模拟支付功能开发:踩坑与闭环实现
后端·python·django
YouGIS顽石工坊2 小时前
坐标转换服务私有化部署指南 - 源码与Docker两种方案
python·restful·docker镜像·python源码·pyproj·坐标转换服务·高斯克吕格投影
tony3652 小时前
pytorch分布式训练解释
人工智能·pytorch·分布式
李可以量化2 小时前
【Python 量化入门】AKshare 保姆级使用教程:零成本获取股票 / 基金 / 期货全市场金融数据
开发语言·python·金融·qmt·miniqmt·量化 qmt ptrade
迷之程序员2 小时前
llama-cpp-python用法,模型加载gpu踩坑全记录
开发语言·python·llama