【RT】Visible Thermal Re-IDDeep Learning for Person Re-identification: A Survey and Outlook中提出了一个针对单/跨模态行人重识别的baseline:AGW
做过两次,在测试阶段有问题,现在再重做一次🤔Code
RTX3090
修改数据集路径:test.py
, train.py
, data_loader.py
, pre_process_sysu.py
on the SYSU-MM01
Train
(caiman)$ python pre_process_sysu.py
一些路径和文件命名问题,修改一下
然后可以跑了,同样只用第二张卡,防止占用
13:00
python train.py --dataset sysu --lr 0.1 --method agw --gpu 1
服务器主动断开了,在37epoch,,终端长时间无操作😰
Best Epoch [18]:
Rank-1 | Rank-5 | Rank-10 | Rank-20 | mAP | mINP | |
---|---|---|---|---|---|---|
POOL | 46.49% | 74.70% | 84.17% | 93.27% | 45.66% | 32.76% |
FC | 49.96% | 75.57% | 84.12% | 92.22% | 47.47% | 33.79% |
三次实验best epoch都是在20左右的,问题不大
Test
python test.py --mode all --resume ‘save_model/sysu_agw_p4_n8_lr_0.1_seed_0_trial_1_best.t’ --dataset sysu --gpu 1
仍然不行
下载作者提供的训练好的权重titledsysu_awg_p4_n8_lr_0.1_seed_0.t
(ps:如下问题解决之后这个权重用不了❓)
同样不行,
没读到best checkpoint,地址有误?
问题看test.py
151行代码👇
多了checkpoint_path,重复给地址(最终模型加载的地址错误),但代码报错时,又不显示这个多余的checkpoint_path,只显示resume给的那串💥
因为我resume传参给的完整地址,要么调整①:resume传参只给模型权重的名,(是作者本意吧💦)
i.e. python test.py --mode all --resume 'sysu_agw_p4_n8_lr_0.1_seed_0_best.t' --dataset sysu --gpu 1
实际我👵(个人习惯,传参带路径)修改②:删除151行checkpoint_path
这个参数
总之,终于解决✌️
十次取平均(因为数据集太小):
Rank-1 | Rank-5 | Rank-10 | Rank-20 | mAP | mINP | |
---|---|---|---|---|---|---|
POOL | 47.33% | 74.97% | 84.90% | 92.95% | 45.99% | 32.76% |
FC | 49.96% | 75.57% | 85.30% | 94.12% | 45.34% | 32.85% |
on the RegDB
Train
python train.py --dataset regdb --lr 0.1 --method agw --gpu 0,1
用不到30min
Test
python test.py --resume 'save_model/regdb_agw_p4_n8_lr_0.1_seed_0_trial_1_best.t' --dataset regdb --gpu 0,1
同样,修改读取已保存模型的路径修改一致
数据集太小,测试十次,取均值作为最后结果:
Rank-1 | Rank-5 | Rank-10 | Rank-20 | mAP | mINP | |
---|---|---|---|---|---|---|
POOL | 86.96% | 92.28% | 94.68% | 97.04% | 83.06% | 73.91% |
FC | 85.67% | 90.99% | 93.88% | 96.43% | 82.42% | 73.70% |
这结果怎么这么好😶