当前位置: 首页 > 工具软件 > Titon Toolkit > 使用案例 >

【目标检测】Win10+TITAN RTX+CUDA10.0+pytorch1.1搭建CenterNet环境

姚正真
2023-12-01

一、前言

CenterNet有两个,本文的CenterNet对应的论文是:Objects as Points
对应Github地址:xingyizhou/CenterNet

其实Win10安装过程和Ubuntu方法差不多的,本文主要说说本人在Win10上安装过程中需要注意的地方。

Ubuntu版本点击这里:【目标检测】Ubuntu16.04+RTX2070+CUDA10+pytorch1.1搭建CenterNet环境

本电脑环境为:

Win10
GPU TITAN RTX
GPU驱动 430.86
CUDA 10.0.130
CUDNN 7.5.0
python 3.6.9
pytorch 1.1.0
torchvision 0.3.0

二、CUDA和CUDNN

1.1 下载CUDANN

CUDA下载网址:CUDA Toolkit 10.0 Archive

CUDANN下载网址:cuDNN Archive
其实CUDNN只要和CUDA是对应的、不要太旧就可以了,本人选择的是Download cuDNN v7.5.0 (Feb 21, 2019), for CUDA 10.0版本

1.2 安装

安装CUDA和CUDNN过程网上很多,在这里就不赘述了。需要注意的是,安装完毕后,记得验证下是不是真的安装成功了。

验证CUDA
ctrl+r,输出cmd进入命令行,输入:

nvcc -V

正常情况下是会显示CUDA版本为10.0.130

验证CUDNN
进入C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\include,打开cudnn.h文件,搜索CUDNN_MAJOR
正常情况下文件会包含下列内容,也就是版本号7.5.0:

#define CUDNN_MAJOR 7
#define CUDNN_MINOR 5
#define CUDNN_PATCHLEVEL 0

三、安装步骤

参考CenterNet环境配置(Win10+Pytorch1.2.0+Cuda10+VS2017)

四、安装python库很慢

可以在命令末尾加上-i 国内下载源地址,例如:

pip install -r requirements.txt -i https://pypi.douban.com/simple/

(1)阿里云:http://mirrors.aliyun.com/pypi/simple/
(2)豆瓣:https://pypi.douban.com/simple/
(3)清华大学:https://pypi.tuna.tsinghua.edu.cn/simple/
(4)中国科学技术大学:https://pypi.mirrors.ustc.edu.cn/simple/

五、pytorch安装不上

采用whl安装方法:whl下载地址
下载torch-1.1.0-cp36-cp36m-win_amd64.whltorchvision-0.3.0-cp36-cp36m-win_amd64.whl

然后进入到下载地址,在cmd命令行窗口中输入

pip install torch-1.1.0-cp36-cp36m-win_amd64.whl
pip install torchvision-0.3.0-cp36-cp36m-win_amd64.whl

然后输入pip list,查看是否有torch和torchvision

六、EOFError: Ran out of input

此问题对应issue:Train error in voc-style dataset #178

修改main.py第48行,num_workers=1改为num_workers=0

  val_loader = torch.utils.data.DataLoader(
      Dataset(opt, 'val'), 
      batch_size=1, 
      shuffle=False,
      num_workers=0,   # 改这一行
      pin_memory=True
  )

七、找不到pycocotools

原因在于你忘了安装cocoapi,运行下面的指令安装

git clone https://github.com/cocodataset/cocoapi.git
cd cocoapi/PythonAPI
python setup.py install --user

注意文件地址要改成你自己的!

p.s. 如果编译出错的话,将setup.py中的extra_compile_args=["-Wno-cpp", "-Wno-unused-function"]注释掉,即:

# extra_compile_args=['-Wno-cpp', '-Wno-unused-function', '-std=c99']

这个编译错误在编译NMS的时候也会遇到,请看下面的第八。

八、ModuleNotFoundError: No module named ‘_ext’

因为你之前编译NMS失败了,在CenterNet\src\lib\external中注释setup.py文件中下面的代码(就是在前面加个#)

# extra_compile_args=["-Wno-cpp", "-Wno-unused-function"]

再重新编译

python setup.py build_ext --inplace

p.s. 在Ubuntu上能够跑通的代码放在Win10是跑不通,因为有一些文件或者库需要在Win10上重新安装

p.s. 一般在Windows上编译python setup.py报错时,大多数情况下注释extra_compile_args可以解决问题

九、编译DCNv2

  1. git clone https://github.com/CharlesShang/DCNv2
  2. DCNv2文件夹替换CenterNet\src\lib\models\networks\DCNv2文件夹
  3. 修改 CenterNet\src\lib\models\networks\DCNv2\src\cuda\dcn_v2_cuda.cu,改成如下形式
// extern THCState *state;    // 注释该行
THCState *state = at::globalContext().lazyInitCUDA();    // 添加该行
  1. 重新编译,注意地址要改成你自己的
cd CenterNet\src\lib\models\networks\DCNv2
make.sh
 类似资料: