OpenGVLab/gv-benchmark

Problems about reproducing INTERN-r50-Up-G-dbn

linfeng93 opened this issue · 1 comments

Thanks for your great work.

My reproduction linear probing result for INTERN-r50-Up-G-dbn on the full VOC07+12 dataset is only 77.5, which is much lower than the paper result 87.7 obtained with only 10% data.

My exp info:

  1. INTERN-r50-Up-G-dbn-a4040c9c4.pth.tar is used as pretrained model, which is downloaded from the webside: https://opengvlab.shlab.org.cn/models
  2. The file in this repo "./configs/det/linear_probe/faster_rcnn/central_mnb4_fpn_Up-G-D_pretrain_voc0712_10p.py" is used in my exps with two changes:
    (a). _base_ = [..., '../../base/datasets/voc0712.py', ...]
    (b). model = dict(backbone=dict(init_cfg=dict(
    type='Pretrained',
    checkpoint='./INTERN-r50-Up-G-dbn-a4040c9c4.pth.tar',
    ))
  3. the used command:
    bash ./tools/dist_train.sh configs/det/linear_probe/faster_rcnn/central_r50_fpn_Up-G-D_pretrain_voc0712_10p.py 8

I have no idea what may cause this.

Some of my training log as follows:

INFO - Set random seed to 1962424783, deterministic: False
INFO - initialize Central_Model with init_cfg {'type': 'Pretrained', 'checkpoint': './INTERN-r50-Up-G-dbn-a4040c9c4.pth.tar'}
INFO - load model from: ./INTERN-r50-Up-G-dbn-a4040c9c4.pth.tar
INFO - load checkpoint from local path: ./INTERN-r50-Up-G-dbn-a4040c9c4.pth.tar
WARNING - The model and loaded state dict do not match exactly

unexpected key in source state_dict: lateral_convs.0.convclear.weight, lateral_convs.0.convclear.bias, fpn_convs.0.conv.weight, fpn_convs.0.conv.bias, lateral_convs.1.conv.weight, ateral_convs.1.conv.bias, fpn_convs.1.conv.weight, fpn_convs.1.conv.bias, lateral_convs.2.convweight, lateral_convs.2.convbias, fpn_convs.2.conv.weight, fpn_convs.2.conv.bias, lateral_convs.3.conv.weight, lateral_convs.3.conv.bias, fpn_convs.3.convweight, fpn_convs.3.convbias, rpn_head.rpn_conv.weight, rpn_head.rpn_conv.bias, roi_head.bbox_head.shared_fcs.0.weight, roi_head.bbox_head.shared_fcs.0.bias, roi_head.bbox_head.shared_fcs.1.weight, roi_head.bbox_head.shared_fcs.1.bias

INFO - initialize FPN with init_cfg {'type': 'Xavier', 'layer': 'Conv2d', 'distribution': 'uniform'}
INFO - initialize RPNHead with init_cfg {'type': 'Normal', 'layer': 'Conv2d', 'std': 0.01}
INFO - initialize Shared2FCBBoxHead with init_cfg [{'type': 'Normal', 'std': 0.01, 'override': {'name': 'fc_cls'}}, {'type': 'Normal', 'std': 0.001, 'override': {'name': 'fc_reg'}}, {'type': 'Xavier', 'distribution': 'uniform', 'override': [{'name': 'shared_fcs'}, {'name': 'cls_fcs'}, {'name': 'reg_fcs'}]}]

Results:
+-------------+------+-------+--------+-------+
| class | gts | dets | recall | ap |
+-------------+------+-------+--------+-------+
| aeroplane | 285 | 787 | 0.923 | 0.836 |
| bicycle | 337 | 992 | 0.941 | 0.851 |
| bird | 459 | 1389 | 0.900 | 0.769 |
| boat | 263 | 1504 | 0.863 | 0.688 |
| bottle | 469 | 1951 | 0.842 | 0.661 |
| bus | 213 | 812 | 0.920 | 0.810 |
| car | 1201 | 3952 | 0.959 | 0.868 |
| cat | 358 | 1142 | 0.958 | 0.864 |
| chair | 756 | 4869 | 0.862 | 0.598 |
| cow | 244 | 794 | 0.959 | 0.857 |
| diningtable | 206 | 1409 | 0.922 | 0.725 |
| dog | 489 | 1612 | 0.973 | 0.849 |
| horse | 348 | 1035 | 0.957 | 0.878 |
| motorbike | 325 | 1032 | 0.923 | 0.836 |
| person | 4528 | 14008 | 0.938 | 0.835 |
| pottedplant | 480 | 2511 | 0.802 | 0.503 |
| sheep | 242 | 800 | 0.884 | 0.760 |

| sofa | 239 | 1301 | 0.933 | 0.742 |
| train | 282 | 1033 | 0.908 | 0.812 |
| tvmonitor | 308 | 1388 | 0.899 | 0.757 |
+-------------+------+-------+--------+-------+
| mAP | | | | 0.775 |
+-------------+------+-------+--------+-------+
2022-03-24 09:57:06,094 - mmdet - INFO - Exp name: central_r50_fpn_Up-G-D_pretrain_voc0712.py
2022-03-24 09:57:06,094 - mmdet - INFO - Epoch(val) [12][619] mAP: 0.7750, AP50: 0.7750

the full logs here: voc.log

correct main_task_name='gv_global' to main_task_name='gv_patch' in config file "faster_rcnn_central_r50_fpn_intern.py"