win10系统配置mmdetection2.6指南

win10系统配置mmdetection2.6指南

在此特别鸣谢B站up主:小鸡炖技术。windows系统配置mmdetection系列视频指路:https://space.bilibili.com/359205617?spm_id_from=333.788.b_765f7570696e666f.1
这篇博客主要记录我在配置mmdetection2.6时遇到的一些问题以及解决方法。现在已经可以顺利的跑起来了,训练了一个扑克牌识别模型。

环境配置

首先看一下我的环境:
Python3.7.9+PyTorch1.6.0+CUDA10.1+CuDNN7.6.4+TorchVision0.7.0+MMCV1.1.5+Visual Studio2017

sys.platform: win32
Python: 3.7.9 (default, Aug 31 2020, 17:10:11) [MSC v.1916 64 bit (AMD64)]
CUDA available: True
GPU 0,1: GeForce GTX 1080 Ti
CUDA_HOME: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1
NVCC: Not Available
GCC: n/a
PyTorch: 1.6.0
PyTorch compiling details: PyTorch built with:
  - C++ Version: 199711
  - MSVC 192628806
  - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191125 for Intel(R) 64 architecture applications
  - Intel(R) MKL-DNN v1.5.0 (Git Hash e2ac1fac44c5078ca927cb9b90e1b3066a0b2ed0)
  - OpenMP 2019
  - CPU capability usage: AVX2
  - CUDA Runtime 10.1
  - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_61,code=sm_61;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_37,code=compute_37
  - CuDNN 7.6.4
  - Magma 2.5.2
  - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS=/DWIN32 /D_WINDOWS /GR /EHsc /w /bigobj -openmp:experimental -DNDEBUG -DUSE_FBGEMM -DUSE_VULKAN_WRAPPER, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=OFF, USE_NNPACK=OFF, USE_OPENMP=ON, USE_STATIC_DISPATCH=OFF, 

TorchVision: 0.7.0
OpenCV: 4.2.0
MMCV: 1.1.5
MMCV Compiler: MSVC 192729111
MMCV CUDA Compiler: 10.1
MMDetection: 2.6.0+
  1. 安装Anaconda(python3.7.9版本),网上教程很多很多了,不再赘述,网上安装包有时下载很慢,需要的可以评论私信我(个人推荐安装时直接勾选将Anaconda添加到环境变量,不建议在最后选择安装Microsoft VS Code

  2. 安装Microsoft Visual Studio 2017,这个地方需要注意的地方还是蛮多的。

    ①我在这个地方卡了很久,up视频里关于VS安装这块讲的不是很详细,结合自己的理解和经历来谈谈。

    ②up教程里一直强调装VS,他使用的IDE我一直以为是VS2015,但后来发现那个是VS Code。**并不意味安装了VS Code就不需要安装VS 2015及以上版本。**关于两者的区别自己上网搜。个人理解:安装Microsoft Visual Studio的作用是提供C++编译环境,以及mmdetection运行时所必须的microsoft visual c++ runtime 2014等必要依赖。

    ③up主安装时使用的是VS2015,个人建议不要比VS2015低。

    ④安装VS的时候我安装Python开发使用C++的桌面开发两个组件。具体如图。一开始我并没有安装使用C++的桌面,所以在按照视频配置的时候会出现一片红,主要时Runtime Error,提示我找不到microsoft visual c++ runtime 2014。

    ⑤现在觉得Python开发组件应该可以不用安装。因为还是习惯在终端命令行跑模型。

  3. CUDA和cudnn的安装。up的几个视频里详细的讲了这两个组件的安装,以及要替换修改什么东西。具体的看视频就好了。

    ①cuda和cudnn安装针对nvidia系列显卡,其他品牌的显卡好像不需要的。

    ②安装cuda之前看一下你的显卡驱动版本,cuda、cudnn和驱动有版本对应关系。csdn里好多博客。
    不建议在设备管理器里鼠标右键更新显卡驱动。我就是因为这样导致了电脑黑屏无法修复,重装了系统,还差点搞丢了ubuntu。

    ③mmdetection对cuda版本有要求,所以更新驱动的时候要去nvidia官网看一下和自己显卡型号相匹配的显卡驱动下载安装即可。

    关于nvidia官网驱动下载缓慢的解决办法:复制下载连接,使用迅雷下载,有惊喜。

  4. mmdetection环境配置。上述三个环境配置完成,就可以按照up视频进行mmdetection环境配置。

    ①mmdetection1.x版本、2.0版本、2.3版本、2.6版本。2.6和前三个版本安装差别很大,也是最简单的。

    ②2.6的视频里边运行命令python setup.py develop之前,一定要参照2.0版本视频,修改setup.py文件中CUDAExtension中extra_compile_args 相关代码,增加cxx的:"-DMS_WIN64","-MD"。否则后续会报错。报错内容后边会讲到。

    ③2.6视频中使用下边两条命令时会报错:
    第一条命令是conda install pytorch=1.6 torchvision cudatoolkit=10.1,这个命令是安装pytorch的,在某个视频教程中up教了如何更换镜像源,大家可以去找。我不知道我是没有更换镜像源成功还是怎么的,使用这个命令不太行。总是安装失败。So I take the airplane(相信你懂的),利用pytorch官网提供的命令进行安装。网址:https://pytorch.org/get-started/previous-versions/,需要注意的是一定要根据torchversion、pytorch、系统、cuda版本找到正确的安装命令。因为是从官方源安装(官方源在国外)所以你得想点办法才行(手动狗头)。
    安装pytorch时,我建议大家像up在某个视频里边提到的,将pytorch单独配置一个虚拟环境,后续直接copy这个虚拟环境即可

    第二条命令是pip install mmcv-full==1.1.5+torch1.6.0+cu101 -f https://download.openmmlab.com/mmcv/dist/index.html,这个是用来安装mmcv的,具体报的什么错我已经记不得了。反正是我配置的时候输这个命令就是不行。我的解决方法是参照mmdetection官方说明文档上的命令进行解决。附上官方文档的链接吧:https://mmdetection.readthedocs.io/en/latest/get_started.html#installation
    在这里插入图片描述
    ④使用pip install -r requirements.txt安装依赖时也可能会报错,尤其是安装一部分之后报错。具体报错内容已经记不清楚了。我记得是有runtime error,还有就是会提示升级pip,好像还会有提示你缺少一些必要的packages,按照提示升级pip或者安装缺少的packages即可。

    特别强调:up主电脑上因为配置太多太多边的mmdetection,所以在2.6版本教程里边他并没有提及安装pycocotools,这个对于requirements.txt中依赖项的安装极其重要。我就因为没有安装pycocotools,报错了。因此在pip install -r requirments.txt之前按照1.x版本教程安装pycocotools

  5. 安装成功的说明

    当你可以按照此篇博客和up视频教程用摄像头运行demo.py的时候。Congratulations!你离成功不远了。

    按照up的2.6视频修改相关.py文件。就可以尝试训练你自己的数据集了。下面是我训练poker数据集的时候遇到的一些问题整理

mmdetection2.6训练voc格式扑克牌数据集

数据集来源博客:https://blog.csdn.net/laizi_laizi/article/details/104256781,在此特别鸣谢博主。

一、补充说明

1、上述博客中使用linux系统进行训练。

2、上述博客中代码需要修改的地方已经很详细了。但博主使用的mmdetection版本应该比较老。从某个版本(具体记不清了,2.6版本适用)开始,num_classes= constant 这一项已经不需要加上图片背景了,即num_classes=6而不是=7。

3、博主百度云中的数据集是存在一些问题的,这在后边Error集锦中会提到。

二、Error集锦

1、AttributeError: ‘ConfigDict‘ object has no attribute ‘pipeline‘

解决办法:参看博客:https://blog.csdn.net/tycoer/article/details/109507124
主要是把voc0712.py中train中第一个字典给注掉,如图。
在这里插入图片描述
2、ValueError: need at least one array to concatenate

解决办法:首先出现这个问题的原因是mmdetection不能够正确读取图片数据,因此神经网络没有数组进行相关的计算。报错了。
首先是肯定要检查你的数据集有没有问题的,比如命名、路径、格式之类。其次就是看你的环境有没有配置好,我在前边5-②中说过需要修改.py文件。我就是一开始没有修改,检查数据集没问题仍报这个错,当我修改.py文件后,重新运行python setup.py develop,进而再跑模型的时候就没有报错了。

关于voc数据格式,从上述博客中下载的是这样的,这样的数据是没有办法读取的。

我修改以后的是这样的
在这里插入图片描述voc格式数据集必须是一行行分开的。需要更新后的.txt文件的可以评论区留下邮箱即可。

3、No such file or directory:E:\mmdetection\mmdetection2.6\data\VOCdevkit\poker_voc\VOC2007\Annotations\.xml

关于这个报错还是和数据集有关系:提示.xml文件不存在意味着数据集标签中没有空格命名的文件,那肯定是.txt文件中有空格行导致了这个问题,所以我们就要去检查.txt是否有空格行,有的话删除保存就可以了。

三、最终结果
在这里插入图片描述

后续还会进行其他数据集训练。
有问题会继续更新。

你的点赞和收藏是我创作的动力。
版权所有,侵权必究。转载请先联系本人授权。


吐槽一下,想把文章收进专栏,所以重新发布了一下,没想到审核没过,说我违法国家法律法规,郁闷???

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值