Finetuning-free eval COCO datasets
Closed this issue · 1 comments
Qia98 commented
作者你好,我按照readme.md整理了coco数据集,并做了如下更改:
1、configs/pretrain/mq-glip-t_coco.yaml:将69,70行改为对应的train和val路径
2、执行了以下命令来Vision Query Extraction
python tools/extract_vision_query.py \
--config_file configs/pretrain/mq-glip-t_coco.yaml \
--dataset coco \
--num_vision_queries 5 --add_name tiny
得到结果如下,并生成了MODEL/coco_query_5000_sel_tiny.pth文件,看上去没有问题
3、执行了以下命令来进行Finetuning-free Evaluation
python -m torch.distributed.launch --nproc_per_node=4 \
tools/test_grounding_net.py \
--config-file configs/pretrain/mq-glip-t_coco.yaml \
--additional_model_config configs/vision_query_5shot/coco.yaml \
VISION_QUERY.QUERY_BANK_PATH MODEL/coco_query_5000_sel_tiny.pth \
MODEL.WEIGHT MODEL/groundingdino_swint_ogc.pth \
TEST.IMS_PER_BATCH 4
处理时间约15分钟,输出结果如下
请问为什么所有的AP和AR结果均为0?
YifanXu74 commented
嗨,
可以确认一下下面这几项吗:
- 加载权重是否正确:1)你的命令中加载权重是
MODEL/groundingdino_swint_ogc.pth
,这是groundingdino原始权重,没有vision query的能力,相当于模型中的GCP还是随机初始化的状态,直接拿来测试肯定有问题; - config文件和权重是否正确:这里使用的config文件是
mq-glip-t_coco.yaml
,是应该调用了glip-t模型,但是却加载了groundingdino的权重 - vision query提取:在做finetuning-free 测试时不需要抽取5000个vision query,这样会增加测试的随机性,因为在config文件里默认是测试时每个类别用5个vision query,见这里。可以在预训练时提5000个,在测试时重新提取5个。
- 在测试时,可以参考lvis_minival.yaml对config文件对应部分进行修改。
另外,我会在近期空闲的时候更新一版在自定义数据集下的finetuning-free和finetuning的指引,可以关注下哈