ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

win10和win7系统配置faster rcnn(pytorch)

2021-01-15 10:30:29  阅读:771  来源: 互联网

标签:std faster lib min win7 pytorch cuda model 512


在win10和win7系统上配置faster rcnn(GPU)冲冲冲

介绍

最近实验室需要在win7系统上配置一个faster rcnn,实验需要,它就是不允许在ubuntu下使用。这里简单介绍一下自己的配置过程。最后顺利跑了起来。
github:jwyang/faster-rcnn.pytorch
该项目的ubuntu配置环境教程:wind-chaser
ubuntu的配置教程写的非常详细了。这个项目的使用方法在github页面或者这位追风者的博客都写的非常清楚。我主要介绍一下如何在windows系统上配置。

我的环境

win10 或者 win7 (都成功)
Anaconda3
python3.6
cuda10.1 update2!!!(我只尝试了update2,为什么使用它下文会解释)
pytorch1.4

配置过程

1. 数据准备

在根目录下新建data文件夹,data文件夹下新建 pretrained_model文件夹和VOCdevkit2007文件夹,前者用来存放下载下来的训练权重,后者存放官方VOC2007数据集,或者你自己用labelImg标注的数据集。这个权重模型一般不太好下载,我把网盘下载地址送上,不过我只使用了resnet101,所以链接也只有resnet101,需要使用其他权重的小伙伴去github链接下找。(链接:https://pan.baidu.com/s/1s8DptXAGizhVGP6AYfXzeQ 提取码:ort4 复制这段内容后打开百度网盘手机App,操作更方便哦–来自百度网盘超级会员V1的分享)

2. 把数据集放进VOCdevkit2007文件夹下,名字为VOC2007

--data
----pretrained_model
-------resnet_caffe.pth
----VOCdevkit2007
-------VOC2007

3. 安装依赖包和pytorch1.4,这里的cuda版本是10.1

终端执行两行代码
conda install pytorch==1.4.0 torchvision==0.5.0 cudatoolkit=10.1 -c pytorch
pip install -r requirements.txt

4. 编译!!windows的小伙伴一定都死在了这步!ubuntu编译就很顺利,windos它不行啊!

cd lib
python setup.py build develop

终端执行这两行代码,报错。
error1

error: Microsoft Visual C++ 14.0 is required.

solution1
1安装 Visual C++ Build Tools 2015 并勾选Windows 10 SDK
2安装Visual Studio 2019并勾选使用C++的桌面开发,一定要勾选C++的桌面开发!
这里建议直接使用第二种方法,省事。这个解决方法是在stackoverflow上有人提到的,还有一位大佬的博客
error2

error: command 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe' 
failed with exit status 2

solution2
使用solution1中的方法1解决。我没遇到过这个情况。

error3

C:/Users/Skaldak/FasterRCNN/lib/model/csrc/cuda/ROIAlign_cuda.cu(275): error: 
no instance of function template "THCCeilDiv" matches the argument list
            argument types are: (long long, long)

C:/Users/Skaldak/FasterRCNN/lib/model/csrc/cuda/ROIAlign_cuda.cu(275): 
error: no instance of overloaded function "std::min" matches the argument list
            argument types are: (<error-type>, long)

C:/Users/Skaldak/FasterRCNN/lib/model/csrc/cuda/ROIAlign_cuda.cu(321): 
error: no instance of function template "THCCeilDiv" matches the argument list
            argument types are: (int64_t, long)

C:/Users/Skaldak/FasterRCNN/lib/model/csrc/cuda/ROIAlign_cuda.cu(321): 
error: no instance of overloaded function "std::min" matches the argument list
            argument types are: (<error-type>, long)

solution3
1修改 lib\model\csrc\cuda\ROIAlign_cuda.cu 第275行

  // dim3 grid(std::min(THCCeilDiv(output_size, 512L), 4096L));
  dim3 grid(std::min(((int)output_size + 512 -1) / 512, 4096));

2修改 lib\model\csrc\cuda\ROIAlign_cuda.cu 第320行

  // dim3 grid(std::min(THCCeilDiv(grad.numel(), 512L), 4096L));
  dim3 grid(std::min(((int)(grad.numel()) + 512 -1) / 512, 4096));

3修改 lib\model\csrc\cuda\ROIPool_cuda.cu 第129行

// dim3 grid(std::min(THCCeilDiv(output_size, 512L), 4096L));
  dim3 grid(std::min(((int)output_size + 512 -1) / 512, 4096));

4修改 lib\model\csrc\cuda\ROIPool_cuda.cu 第176行

// dim3 grid(std::min(THCCeilDiv(grad.numel(), 512L), 4096L));
dim3 grid(std::min(((int)(grad.numel()) + 512 -1) / 512, 4096)); 

5删除 lib\build 下所有内容,再次

python setup.py build develop

出现:

Installed ......\lib
Processing dependencies for faster-rcnn==0.1
Finished processing dependencies for faster-rcnn==0.1

如上所示就说明编译完成了,强调一下,这部分不是我原创,感谢博主Skaldak提供的解决方案。

下来就可以尝试运行了

终端执行代码:

python trainval_net.py --dataset pascal_voc --net res101 --cuda

下来应该会报错一个关于pycocotools的错误,具体错误是啥记不清了,不要担心,很好解决
首先在终端执行

pip install pycocotools

然后lib文件下看到有个文件夹叫做pycocotools,把这个文件夹重新命名为其他名字。这里的目的是为了不让程序调用我们编译过的原代码的pycocotools,而是调用我们pip安装的pycocotools。
再次运行训练代码,如果顺利的话,代码应该可以顺利跑起来了。

想说的话

其实大家看一下我一直提到的那位博主的博客,会注意到评论区有人报错,错误内容为编译器要求为VS2013-2017版本的,而我们使用的是2019版本的。最开始我也遇到了这个问题。这是你的电脑环境问题,一定要使用cuda10.1 update2,或者叫做cuda10.1.243,cuda10.0的情况配不出来.如果查一下cuda10.0你会发现他是2018年发行的工具,使用VS2019自然会报错,要求你使用低版本的VS编译,而cuda10.1 update2 是2019年8月份发行的工具,所以VS2019可以顺利编译。这也是为什么我的这篇博客和Skaldak的内容很相似,我还是要写的原因,希望大家可以避开这个坑。只要使用cuda10.1和VS2019顺利编译以后,可以再把你的cuda版本换回去,比如我又换回了8.0版本去做其他工作。

冲冲冲!

标签:std,faster,lib,min,win7,pytorch,cuda,model,512
来源: https://blog.csdn.net/cube_suger/article/details/112648721

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有