Mask Scoring R-CNN——源码运行记录
最近在跑该模型,遇到了很多问题,github上给的东西不足以将这个模型给正常运行起来,所以在此记录一下
1、环境说明
各个版本的信息:ubuntu18.04.3 (linux服务器)+ CUDA9+torch1.0+torchvision0.2+python3.6.2 + gcc5
如果不知道各个东西的含义的,可以查看我的另外一篇博文:显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn
python、torch、torchvision版本信息(可查看下面第2点具体的操作)
cuda版本信息:CUDA下载与安装
gcc 版本信息:gcc安装与多版本之间切换
2、具体的版本下载操作
这边我们还是利用Anaconda Linux 安装 Anaconda 建立虚拟环境来进行各个版本信息的安装,在此之前,请先确定上面的CUDA、gcc版本已经安装完毕
关于pychorch的版本信息,不同的linux服务器可能不同,可参照Pychorch 官网下载 下面的话,主要是针对我ubuntu18.04 CUDA9.0 下载pytorch为1.0.0、 torchvision为0.2.1 的命令(针对这个模型),其他的可以查看 Pytorch 旧版本下载
# 创建一个名称为ms_rcnn的虚拟环境
conda create -n ms_rcnn python = 3.6.2 ipython
# maskrcnn_benchmark and coco api dependencies
pip install ninja yacs cython matplotlib
# 针对 ubuntu18.04 CUDA9.0 下载pytorch为1.0.0、 torchvision为0.2.1 的命令
conda install pytorch==1.0.0 torchvision==0.2.1 cuda90 -c pytorch
# 下面的根据官网的下载即可,可以自己在git下载下来再ftp传上去,然后install也可
# 可能文件夹的名称会和下面的不一样,cd的时候注意一下
# install torchvision
cd ~/github
git clone https://github.com/pytorch/vision.git
cd vision
python setup.py install
# install pycocotools
cd ~/github
git clone https://github.com/cocodataset/cocoapi.git
cd cocoapi/PythonAPI
python setup.py build_ext install
# install PyTorch maskscoring_rcnn
cd ~/github
git clone https://github.com/zjhuang22/maskscoring_rcnn.git
cd maskscoring_rcnn
# the following will install the lib with
# symbolic links, so that you can modify
# the files if you want and won't need to
# re-build it
python setup.py build develop
3、准备coco的数据集
自己建立一个dataset 文件夹,然后把数据集下载在该目录下并解压,建议直接wget 下载
wget http://images.cocodataset.org/zips/train2014.zip #下载coco train2014训练集图片
wget http://images.cocodataset.org/zips/val2014.zip #下载coco val2014验证集图片
wget http://images.cocodataset.org/zips/test2014.zip #下载coco test2014 测试集图片
wget https://dl.dropboxusercontent.com/s/o43o90bna78omob/instances_minival2014.json.zip?dl=0 #下载minival json
wget https://dl.dropboxusercontent.com/s/s3tw5zcg7395368/instances_valminusminival2014.json.zip?dl=0 #下载validation-minus-minival json
annotations包:
链接:https://pan.baidu.com/s/1vkF9kRmNOoIKopaZ4Qm1Xg 提取码:0907
根据该文件位置及其文件名称,修改文件(maskrcnn_benchmark/config/paths_catalog.py),例如我这边就将datasets改为了…/datasets
然后就正常运行:
python tools/train_net.py --config-file "configs/e2e_ms_rcnn_R_50_FPN_1x.yaml" SOLVER.IMS_PER_BATCH 2 SOLVER.BASE_LR 0.0025 SOLVER.MAX_ITER 720000 SOLVER.STEPS "(480000, 640000)" TEST.IMS_PER_BATCH 1
4、运行常见问题
4.1 error: 不存在instances_minival2014.json和instances_valminusminival2014.json
解决办法:paths_catalog.py 文件路径要对应你下载的这两个文件
4.2 error: RuntimeError: DataLoader worker (pid(s) 13952, 14260) exited unexpectedly
解决办法:进程问题,可以修改maskrcnn_benchmark/config/default.py文件将NUM_WORKERS = 0
4.3 error: RuntimeError: cuDNN error: CUDNN_STATUS_EXECUTION_FAILED
报错原因:
可能是cuda,cudnn,python,torch等的版本不匹配(一定要是上面的环境,踩坑来着重说明)下载对应的版本信息,然后删除build 文件夹,重新去build一下
如果想跑的快一点,可以尝试修改(maskrcnn_benchmark/config/default.py)
NUM_CLASSES = 2
NUM_WORKERS = 0
_C.SOLVER.IMS_PER_BATCH = 2
_C.TEST.IMS_PER_BATCH = 1
更改configs/e2e_mask_rcnn_R_50_FPN_1x.yaml
BASE_LR: 0.002
MAX_ITER: 3000 (改小为了更快看结果)