REOWOD复现!——搭建步骤,已经成功(不用anaconda)

前言:

python==3.8

cuda==11.4

torch==1.9.1

第一步:

拉取REOWOD代码:RE-OWOD的GitHub

第二步:

下载pkl文件(用得上,这个放在进去REOWOD的根目录下):

第三步:

下载python3.8、搭建pytorch

我的cuda版本是11.4,选择的安装命令是这个:

pip install torch==1.9.1+cu111 torchvision==0.10.1+cu111 torchaudio==0.9.1 -f https://download.pytorch.org/whl/torch_stable.html

验证一下:

python3
import torch
torch.cuda.is_available()
True(这个就对了)

第四步:

进入REOWOD上一层目录,git OWOD(这是为了保证OWOD的环境正确,间接保证REOWOD的环境正确)

git clone https://github.com/JosephKJ/OWOD.git

第五步:

获得detectron2(这步可能没用,但是我当时弄了)

git clone https://github.com/facebookresearch/detectron2.git

第六步:

进入OWOD里,现在你的文件夹下应该有个OWOD文件夹,里边都是文件,然后安装detectron2

python -m pip install -e ./

这里千万注意,不要使用该文件夹外部构建的Detectron2,运行代码时会报'Non-existent config key: OWOD',具体原因是Detectron2的版本问题,所以一定要在OWOD内构建Detectron2

如果这里报错关于什么cuda版本啥的,那肯定是版本不兼容了,一定找cuda对应的pytorch和python,我的cuda是11.4,但我找不到11.4,就找了好久,用的现在的第三步的命令(没有conda好难受,但是安装了anaconda还容易找不到问题T_T)

解决办法:在 OWOD 内运行 python -m pip install -e ./ 即可解决

第七步:

测试(这里是一个显卡的情况,俩显卡就改成2):

python tools/train_net.py --num-gpus 1 --dist-url='tcp://127.0.0.1:52125' --resume --config-file ./configs/OWOD/t1/t1_train.yaml SOLVER.IMS_PER_BATCH 8 SOLVER.BASE_LR 0.01 OUTPUT_DIR "./output/t1"

如果报缺少dataset中什么VOC2007里的txt的错,说明对了,环境没问题了(OWOD的环境没问题了)

如果报什么No module named 'reliability'No module named 'shortuuid'

安装这俩就好

pip install reliability
pip install shortuuid

如果太慢看这个清华源pip地址-CSDN博客

第八步:

配置数据集,这里先用COCO数据集

(1)主文件夹下新建datasets/VOC2007文件夹

(2)下载的Annotations与JPEGImages文件夹放在VOC2007下

(3)新建datasets/VOC2007/ImageSets/Main文件夹

(4)将datasets/OWOD_imagesets下的所有文件放到datasets/VOC2007/ImageSets/Main下

第九步:

在REOWOD中跑实验:

进入REOWOD中,还敲刚才第七步的命令(一个显卡的情况):

python tools/train_net.py --num-gpus 1 --dist-url='tcp://127.0.0.1:52125' --resume --config-file ./configs/OWOD/t1/t1_train.yaml SOLVER.IMS_PER_BATCH 8 SOLVER.BASE_LR 0.01 OUTPUT_DIR "./output/t1"

不出意外就会这样,这样说明跑起来了:

但是凡事肯定有意外,我当时意外那是贼多:

先说一下,nvidia-smi中显示的cuda版本和nvcc-V中显示的cuda版本不一样的话,你真实的版本其实是nvcc-V的,我前一个就是12.0,后一个就是11.4,但是报错就报11.4,跟12.0没关系。

Q1:KeyError: 'Non-existent config key: OWOD.CLUSTERING.UNK_THRESH'

A1:在train_net.py中找到cfg = get_cfg(),在它下边补上这句话:cfg.set_new_allowed(True)

Q2:KeyError: 'Non-existent config key: OWOD'

A2:这就是第六步的问题了,一定要进OWOD里去构建,别去git的detectron2上一层构建去,解决办法也在第六步里

Q3:ImportError: /djtu17/RE-OWOD/OWOD/detectron2/_C.cpython-38-x86_64-linux-gnu.so: undefined symbol: _ZNK2at6Tensor6deviceEv

A3:这个就是因为我用了pip uninstall torch把torch删了之后又换了个torch的版本,结果之前安装的环境对这个不适用了,所以就得把环境删了,从新搭起来

先进入OWOD中(稳妥)
rm -rf build/ **/*.so # 这个是删除
pip install -e.# 重建
这步(相当于第六步)解决后,返回到第七步

我参考了不少博客,但对我帮助最大的我展示在下边,如果我这里有问题,去看看这几个吧

OWOD复现过程总结_wangyanhuaa的博客-CSDN博客 这个是我师姐写的

Ubuntu下配置detectron2_ubuntu安装detectron2-CSDN博客 这个是我师兄写的(他的博客有很多有用的东西,可以看看)

CUDA版本11.4,pytorch应该下哪个版本的? - 知乎 (zhihu.com)

记录Google Colab上跑通OWOD - 知乎 (zhihu.com) 这个也可以看看,这个里边的错误我都犯过

要是有问题,留言我看一下,我看看能不能想起来

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林浩杨_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值