日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【代码调试】《FSCE: Few-Shot Object Detection via Contrastive Proposal Encoding》

發(fā)布時(shí)間:2024/3/24 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【代码调试】《FSCE: Few-Shot Object Detection via Contrastive Proposal Encoding》 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

論文地址:https://arxiv.org/pdf/2103.05950.pdf
代碼地址:https://github.com/megvii-research/FSCE
論文閱讀:https://blog.csdn.net/qiankendeNMY/article/details/128390284

我的配置:
Python :3.8(ubuntu18.04)
Pytorch :1.6.0
Cuda :10.1
GPU:RTX 2080 Ti(11GB) * 2

1、依賴安裝

requirements.txt文件下載:https://github.com/ucbdrive/few-shot-object-detection

pip install -r requirements.txt

2、 安裝pycocoapi

pip install 'git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI'

3、安裝fvcore庫(kù)

pip install 'git+https://github.com/facebookresearch/fvcore'

報(bào)錯(cuò):

解決參考:
https://blog.csdn.net/weixin_45355608/article/details/116528406

4、Build

python setup.py build develop

4.1、報(bào)錯(cuò)1

解決:
(1)修改 ./fedet/model_zoo下configs文件的內(nèi)容,改成configs文件夾所在的路徑

(2)執(zhí)行以下命令,創(chuàng)建軟鏈接

ln -sf 【configs文件夾所在的路徑】 ./fsdet/model_zoo

例如:

ln -sf /root/autodl-tmp/configs ./fsdet/model_zoo

4.2、報(bào)錯(cuò)2


解決:
降低pytorch的版本,原來我的pytorch版本是1.6,降低到了1.4就可以正常運(yùn)行了:
https://github.com/megvii-research/FSCE/issues/19

build成功

5、下載VOC數(shù)據(jù)集

cd datasets wget https://pjreddie.com/media/files/VOCtrainval_11-May-2012.tar wget https://pjreddie.com/media/files/VOCtrainval_06-Nov-2007.tar wget https://pjreddie.com/media/files/VOCtest_06-Nov-2007.tar tar xf VOCtrainval_11-May-2012.tar tar xf VOCtrainval_06-Nov-2007.tar tar xf VOCtest_06-Nov-2007.tar

6、訓(xùn)練基礎(chǔ)檢測(cè)器

python tools/train_net.py --num-gpus 2 --config-file configs/PASCAL_VOC/base-training/R101_FPN_base_training_split1.yml

6.1、報(bào)錯(cuò)1

解決:
手動(dòng)下載pkl文件:
https://dl.fbaipublicfiles.com/detectron2/ImageNetPretrained/MSRA/R-101.pkl
然后,修改yml.py中pkl文件的路徑,改為pkl文件在本機(jī)上的存儲(chǔ)路徑,例如: /path/to/ImageNetPretrained/MSRA/R-101.pkl.

6.2、報(bào)錯(cuò)2

Traceback (most recent call last):File "/root/miniconda3/lib/python3.8/site-packages/torch/multiprocessing/spawn.py", line 20, in _wrapfn(i, *args)File "/root/autodl-tmp/fsdet/engine/launch.py", line 84, in _distributed_workermain_func(*args)File "/root/autodl-tmp/tools/train_net.py", line 116, in mainreturn trainer.train()File "/root/autodl-tmp/fsdet/engine/defaults.py", line 397, in trainsuper().train(self.start_iter, self.max_iter)File "/root/autodl-tmp/fsdet/engine/train_loop.py", line 132, in trainself.run_step()File "/root/autodl-tmp/fsdet/engine/train_loop.py", line 212, in run_steploss_dict = self.model(data)File "/root/miniconda3/lib/python3.8/site-packages/torch/nn/modules/module.py", line 550, in __call__result = self.forward(*input, **kwargs)File "/root/miniconda3/lib/python3.8/site-packages/torch/nn/parallel/distributed.py", line 458, in forwardoutput = self.module(*inputs[0], **kwargs[0])File "/root/miniconda3/lib/python3.8/site-packages/torch/nn/modules/module.py", line 550, in __call__result = self.forward(*input, **kwargs)File "/root/autodl-tmp/fsdet/modeling/meta_arch/rcnn.py", line 166, in forward_, detector_losses = self.roi_heads(images, features, proposals, gt_instances)File "/root/miniconda3/lib/python3.8/site-packages/torch/nn/modules/module.py", line 550, in __call__result = self.forward(*input, **kwargs)File "/root/autodl-tmp/fsdet/modeling/roi_heads/roi_heads.py", line 443, in forwardlosses = self._forward_box(features_list, proposals) # get losses from fast_rcnn.py::FastRCNNOutputsFile "/root/autodl-tmp/fsdet/modeling/roi_heads/roi_heads.py", line 464, in _forward_boxbox_features = self.box_pooler(features, [x.proposal_boxes for x in proposals]) # [None, 256, POOLER_RESOLU, POOLER_RESOLU]File "/root/miniconda3/lib/python3.8/site-packages/torch/nn/modules/module.py", line 550, in __call__result = self.forward(*input, **kwargs)File "/root/autodl-tmp/fsdet/modeling/poolers.py", line 233, in forwardoutput[inds] = pooler(x_level, pooler_fmt_boxes_level)File "/root/miniconda3/lib/python3.8/site-packages/torch/nn/modules/module.py", line 550, in __call__result = self.forward(*input, **kwargs)File "/root/autodl-tmp/fsdet/layers/roi_align.py", line 93, in forwardreturn roi_align(File "/root/autodl-tmp/fsdet/layers/roi_align.py", line 19, in forwardoutput = _C.roi_align_forward( RuntimeError: Not compiled with GPU support

這個(gè)問題死活解決不了,刪了所有環(huán)境重新配置之后就沒有再出現(xiàn)這個(gè)問題了。但是花了不少時(shí)間,希望有大佬看到的話能夠提出解決方案。

基礎(chǔ)訓(xùn)練完成:

7、隨機(jī)初始化新類別的權(quán)重

python tools/ckpt_surgery.py --src1 checkpoints/voc/faster_rcnn/faster_rcnn_R_101_FPN_base1/model_final.pth --method randinit --save-dir checkpoints/voc/faster_rcnn/faster_rcnn_R_101_FPN_all1

8、數(shù)據(jù)集split

方法一:

python datasets/prepare_voc_few_shot.py --seeds 1 30

方法二:直接選擇下載作者提供的網(wǎng)頁數(shù)據(jù)集

wget -r -R index.html http://dl.yf.io/fs-det/datasets

將下載好的VOC數(shù)據(jù)集存放在datasets文件夾中的vocsplit文件夾下:

注:

9、微調(diào)

修改模型的權(quán)重路徑為model_resnet_surgery.pth文件的保存路徑:

python tools/train_net.py --num-gpus 2 \--config-file configs/PASCAL_VOC/split1/10shot_CL_IoU.yml

微調(diào)結(jié)束:

10、評(píng)估

python tools/test_net.py --num-gpus 2 \--config-file configs/PASCAL_VOC/split1/10shot_CL_IoU.yml \--eval-only

報(bào)錯(cuò):

解決:
參考:https://github.com/megvii-research/FSCE/issues/9

評(píng)估結(jié)束:

如有錯(cuò)誤,歡迎指正!

總結(jié)

以上是生活随笔為你收集整理的【代码调试】《FSCE: Few-Shot Object Detection via Contrastive Proposal Encoding》的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。