win10 安装并跑通 mmdetection

前言:实际项目中还是建议用服务器以及好的显卡。这里我是在自己电脑上(Windows10)一些简单调的实验,之前一直在Linux上跑,也不是第一次了,但这次用windows跑mmdetection还是踩了许多坑,特地记录一下。

1、确保正确安装pytorch-gpu,并激活相应环境

看我另一篇文章,win10安装gpu版本pytorch

保证cuda、cudnn、pytorch版本匹配上,在上一篇文章中有提到,至于pytorch和python版本不建议太低,mmdetection的github官网上有提到具体的pytorch、python版本最低要求,满足即可。

win10 安装并跑通 mmdetection_第1张图片

2、pip install mmcv-full==xxx 可指定版本

根据官网来, 官网安装mmcv教程

必须要指定版本吗?什么情况下需要指定安装版本
1、不必须,如果你只是想自己从头到尾跑通一个mmdetection,就直接按照Github官网的安装教程走。
2、当你有一份现成的代码(比如师兄师姐给的、或者是github上找的别人已经跑过了的,想在他们的基础上改)。这里两种方式,一是如果你有mmdetection基础,可以直接看原始代码师兄师姐改了哪些地方,然后直接进行步骤1,再在对应的地方去修改。(但是这个需要mmdetection 基础,因为版本原因,新旧代码会有各种细节不一致的问题);二是当你完全是一个小白,那么建议先跑通别人的代码,哪怕是最简单的模型(faster rcnn),先跑起来。再去根据代码学习,因为运行起来的代码可以debug
那么,什么是mmcv-full,它是mmdetection整个框架自带的一个python包,需要另外编译的,所以保证你的电脑带gcc编译器(这个地方比较坑,也可以先不考虑,后续报错,再去安装)。而且从官网上可以看到mmdetection的版本一直在更新,其对应的mmcv-full版本也是在更新的,如果你是继承了他人的代码,需要先把他人代码先跑通再在其基础之上接着做,就需要先了解他的mmdetection中所用的mmcv-full版本,有条件的话可以在师兄师姐的环境下使用命令 pip show mmcv-full,找到对应的版本号了,再安装,如果没有条件想想办法,肯定在某个文件里有。不然mmcv-full版本和你的mmdetection版本不匹配就会导致代码运行时出现各种bug。所以要么mmdetection和mmcv-full全装最新版本,要么指定mmcv-full版本。

注意:这一步中你的终端可能会显示以下error
(1) 一堆红中,报编码错误,根据报错找到相应文件,进去改编码格式。如何改百度,改的时候一定一定要先备份!(最简单的方式:在那个文件所在目录下,复制粘贴生成一个副本,再去修改)

(2)报错需要C++ Compiler,如下图所示,说明你的电脑没有安装Visual Studio,因为mmcv-full是需要编译的,如果你的电脑没有装过VS,就会报如下错误,因为没有编译器去编译mmcv-full中的内容。这里需要注意:网上有博客提示装Microsoft Visual C++ Build Tools即可,我试过了没成功可能是我安装的版本问题,这里猜测原因可能是我装了2015版本的这个tools,后面卸载重新装了完整的VS2015,还是没有解决问题,后面换了VS2017,成功编译解决了问题。我的mmcv-full版本是1.3.1,所以mmcv-full>=1.3.1时应该是需要至少VS2017来编译,至于2017版本的Visual C++ Build Tools我倒没有试过


在这一步中,我纠结了许久这个小问题真的需要下一个那么大的编译器吗?然后不断去找一个更好的方案反而浪费了很多时间,其实,当没有更好的方案的时候,先找到一种能成的方案再有余力去找别的方案会更好。这里我是真没想到直接装VS2017就解决了。(记得不要装在C盘,占空间)

VS2017 下载地址 链接: https://pan.baidu.com/s/1W-nHriODYGqGnQdRYWtIzA 提取码: r6ka,这是一个在线安装软件,下了以后双击exe文件,会提示安装,安装过程参考 VS2017安装教程, 过程中最好,我用的艾可云(收费但用起来还行),这个软件无脑使用,还算稳定,平时主要被我用来看看ins和脸书…
win10 安装并跑通 mmdetection_第2张图片

3、继续安装其他包文件

mvcc-full安装成功以后,再按照 mmdetection github_get_started 完成剩下的步骤
win10 安装并跑通 mmdetection_第3张图片

4、配置完成以后,就可以跑你自己的mmdetection程序

自己笔记本上,尽量先把batchsize和线程数置为1,避免CUDA outofmemory错误,然后就可以调试了,即:
samples_per_gpu=1,workers_per_gpu=1
如果你第一次跑mmdetection,可以参考下我这篇博客,希望会对你有所帮助 mmdetectionV2.x版本 训练自己的VOC数据集

你可能感兴趣的:(windows,pytorch,深度学习)