链接
论文
点击
Code
点击
内容参考:https://blog.csdn.net/jolin_ln/article/details/129199959
配置虚拟环境:1、创建虚拟环境,python选择3.7
conda create -n defrcn001 python=3.7
2、激活环境
conda activate defrcn001
3、pytorch以及cuda(看官网,选择合适的)
pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html
4、安装detectron2
python -m pip install detectron2==0.5 -f \
https://dl.fbaipublicfiles.com/detectron2/wheels/cu111/torch1.9/index.html
5、安装所需其他库(注意,这里要进行更改)
打开requirements.txt文件,
将sklearn改为scikit-learn
然后再执行该语句
python3 -m pip install -r requirements.txt
6、下载ImageNetPretrained,将它放置项目里
7、配置环境到这里就差不多啦!记得修改相关配置,比如使用GPU的数量
run_voc.sh里面的权重文件位置也要修改,就是ImageNetPretrained的路径要改成自己的路径
EXP_NAME=$1
SAVE_DIR=checkpoints/voc/${EXP_NAME}
IMAGENET_PRETRAIN=ImageNetPretrained/MSRA/R-101.pkl # <-- change it to you path
IMAGENET_PRETRAIN_TORCH=ImageNetPretrained/torchvision/resnet101-5d3b4d8f.pth # <-- change it to you path
SPLIT_ID=$2
8、下面需要根据论文作者给出格式进行数据集的摆放
可以直接将自己下载好的数据集放置项目文件里,也可以设置软连接
9、执行语句(EXP_NAME——任意;SPLIT_ID (1, 2 or 3))
bash run_voc.sh defrcn 1
10、报错
大部分问题可以参照上面链接那个大佬的,都能解决
但是,
我在调试完其他错误后,最后出现了下面的报错
FloatingPointError: Predicted boxes or scores contain Inf/Nan. Training has diverged.
经查阅:一般这种问题解决方法为更改配置文件里的学习率,将0.02改为0.001
但是代码中就是0.001
所以开始查看损失函数的问题
损失在defrcn——>Modeling——>faster rcnn模块中,添加断点调试也没找到问题出在哪!
所以
复现失败
(虽然炸了,但是纪念小菜鸟第一次跑通代码!希望有解决该问题的大佬帮帮孩子吧!)