microsoft / Cream

This is a collection of our NAS and Vision Transformer work.
MIT License
1.66k stars 225 forks source link

meet the issue KeyError:KeyError: 'backbone.blocks1.0.mixer.m.attn.attention_biases' EfficientViT object detective #217

Closed yuan81 closed 8 months ago

yuan81 commented 8 months ago

when I test on coco datasets, meet the issue as below: KeyError: 'backbone.blocks1.0.mixer.m.attn.attention_biases' KeyError: "EfficientViT_M4: 'backbone.blocks1.0.mixer.m.attn.attention_biases'" KeyError: 'RetinaNet: "EfficientViT_M4: \'backbone.blocks1.0.mixer.m.attn.attention_biases\'"'

environment: windows11 RTX4070 1 GPU CUDA11.7.1 pytorch1.13.1 mmcv 2.0.0 mmdet 2.28.1 retinanet_efficientvit_m4_fpn_1x_coco.py retinanet_efficientvit_m4_fpn_1x_coco.pth

may somebody give any clues?

xinyuliu-jeffrey commented 8 months ago

Hi @yuan81, Could you provide your environment, preparation steps, and commands? Thanks.

yuan81 commented 8 months ago

environment.txt I prepared COCO 2017 dataset, and organized it as readme.md, Then I downloaded the pre-trained model from model-zoo given in readme.md. image Because I use a GPU in a windows system, I followed the example given by mmdetection and wrote the script as follows `#!/usr/bin/env bash

python test.py \ ./configs/retinanet_efficientvit_m4_fpn_1x_coco.py \ ./retinanet_efficientvit_m4_fpn_1x_coco.pth \ --eval bbox segm \ --options "classwise=True" ` thanks!

xinyuliu-jeffrey commented 8 months ago

@yuan81 Thank you for the information. May I know which line raises the error you mentioned?

yuan81 commented 8 months ago

Perhaps you can also provide me with information about your environment, such as Python version, CUDA version, PyTorch version, etc.

admin@work MINGW64 /c/project/Cream-main/EfficientViT/downstream
$ /bin/bash C:/project/Cream-main/EfficientViT/downstream/test.sh
C:\project\Cream-main\EfficientViT\downstream\test.py:106: UserWarning: --options is deprecated in favor of --eval-options
  warnings.warn('--options is deprecated in favor of --eval-options')
loading annotations into memory...
Done (t=0.57s)
creating index...
index created!
deleting key:  backbone.blocks1.0.mixer.m.attn.attention_bias_idxs
deleting key:  backbone.blocks2.3.mixer.m.attn.attention_bias_idxs
deleting key:  backbone.blocks2.4.mixer.m.attn.attention_bias_idxs
deleting key:  backbone.blocks3.3.mixer.m.attn.attention_bias_idxs
deleting key:  backbone.blocks3.4.mixer.m.attn.attention_bias_idxs
deleting key:  backbone.blocks3.5.mixer.m.attn.attention_bias_idxs
Traceback (most recent call last):
  File "C:\ProgramData\anaconda3\envs\EV\lib\site-packages\mmcv\utils\registry.py", line 69, in build_from_cfg
    return obj_cls(**args)
  File "C:\project\Cream-main\EfficientViT\downstream\efficientvit.py", line 534, in EfficientViT_M4
    model = EfficientViT(frozen_stages=frozen_stages, distillation=distillation, pretrained=pretrained, **model_cfg)
  File "C:\project\Cream-main\EfficientViT\downstream\efficientvit.py", line 354, in __init__
    self.init_weights(pretrained=pretrained)
  File "C:\project\Cream-main\EfficientViT\downstream\efficientvit.py", line 401, in init_weights
    relative_position_bias_table_current = model_state_dict[k]
KeyError: 'backbone.blocks1.0.mixer.m.attn.attention_biases'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\ProgramData\anaconda3\envs\EV\lib\site-packages\mmcv\utils\registry.py", line 69, in build_from_cfg
    return obj_cls(**args)
  File "C:\ProgramData\anaconda3\envs\EV\lib\site-packages\mmdet\models\detectors\retinanet.py", line 18, in __init__
    super(RetinaNet, self).__init__(backbone, neck, bbox_head, train_cfg,
  File "C:\ProgramData\anaconda3\envs\EV\lib\site-packages\mmdet\models\detectors\single_stage.py", line 32, in __init__
    self.backbone = build_backbone(backbone)
  File "C:\ProgramData\anaconda3\envs\EV\lib\site-packages\mmdet\models\builder.py", line 20, in build_backbone
    return BACKBONES.build(cfg)
  File "C:\ProgramData\anaconda3\envs\EV\lib\site-packages\mmcv\utils\registry.py", line 237, in build
    return self.build_func(*args, **kwargs, registry=self)
  File "C:\ProgramData\anaconda3\envs\EV\lib\site-packages\mmcv\cnn\builder.py", line 27, in build_model_from_cfg
    return build_from_cfg(cfg, registry, default_args)
  File "C:\ProgramData\anaconda3\envs\EV\lib\site-packages\mmcv\utils\registry.py", line 72, in build_from_cfg
    raise type(e)(f'{obj_cls.__name__}: {e}')
KeyError: "EfficientViT_M4: 'backbone.blocks1.0.mixer.m.attn.attention_biases'"

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\project\Cream-main\EfficientViT\downstream\test.py", line 242, in <module>
    main()
  File "C:\project\Cream-main\EfficientViT\downstream\test.py", line 191, in main
    model = build_detector(cfg.model, test_cfg=cfg.get('test_cfg'))
  File "C:\ProgramData\anaconda3\envs\EV\lib\site-packages\mmdet\models\builder.py", line 58, in build_detector
    return DETECTORS.build(
  File "C:\ProgramData\anaconda3\envs\EV\lib\site-packages\mmcv\utils\registry.py", line 237, in build
    return self.build_func(*args, **kwargs, registry=self)
  File "C:\ProgramData\anaconda3\envs\EV\lib\site-packages\mmcv\cnn\builder.py", line 27, in build_model_from_cfg
    return build_from_cfg(cfg, registry, default_args)
  File "C:\ProgramData\anaconda3\envs\EV\lib\site-packages\mmcv\utils\registry.py", line 72, in build_from_cfg
    raise type(e)(f'{obj_cls.__name__}: {e}')
KeyError: 'RetinaNet: "EfficientViT_M4: \'backbone.blocks1.0.mixer.m.attn.attention_biases\'"'

Thank you for helping me debug remotely in your busy schedule!

xinyuliu-jeffrey commented 8 months ago

Hi @yuan81 , I've reproduced your error with your mmdet version. It may caused by some version update of mmdet. To solve this problem, you can replace

https://github.com/microsoft/Cream/blob/4a13c4091e78f9abd2160e7e01c02e48c1cf8fb9/EfficientViT/downstream/efficientvit.py#L401

by relative_position_bias_table_current = model_state_dict[k.replace('backbone.', '')]

Test result on a single 1080Ti GPU: image

yuan81 commented 8 months ago

it work ,thanks!