SegFormer icon indicating copy to clipboard operation
SegFormer copied to clipboard

无法通过预训练模型完成训练

Open heblade opened this issue 3 years ago • 5 comments

预训练模型路径: ./SegFormer/checkpoints/pretrained/mit_b1.pth 执行脚本: cd SegFormer

python ./tools/train.py ./local_configs/segformer/B1/segformer.b1.512x512.ade.160k.py 报错信息: Traceback (most recent call last): File "c:\xxxx\github\mmcv\mmcv\utils\registry.py", line 51, in build_from_cfg return obj_cls(**args) File "C:\xxxx\github\torch_env\lib\site-packages\mmseg\models\segmentors\encoder_decoder.py", line 30, in init self.backbone = builder.build_backbone(backbone) File "C:\xxxx\github\torch_env\lib\site-packages\mmseg\models\builder.py", line 17, in build_backbone return BACKBONES.build(cfg) File "c:\xxxx\github\mmcv\mmcv\utils\registry.py", line 210, in build return self.build_func(*args, **kwargs, registry=self) File "c:\xxxx\github\mmcv\mmcv\cnn\builder.py", line 26, in build_model_from_cfg return build_from_cfg(cfg, registry, default_args) File "c:\xxxx\github\mmcv\mmcv\utils\registry.py", line 44, in build_from_cfg f'{obj_type} is not in the {registry.name} registry') KeyError: 'mit_b1 is not in the models registry'

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "./tools/train.py", line 166, in main() File "./tools/train.py", line 135, in main test_cfg=cfg.get('test_cfg')) File "C:\xxxx\github\torch_env\lib\site-packages\mmseg\models\builder.py", line 46, in build_segmentor cfg, default_args=dict(train_cfg=train_cfg, test_cfg=test_cfg)) File "c:\xxxx\github\mmcv\mmcv\utils\registry.py", line 210, in build return self.build_func(*args, **kwargs, registry=self) File "c:\xxxx\github\mmcv\mmcv\cnn\builder.py", line 26, in build_model_from_cfg return build_from_cfg(cfg, registry, default_args) File "c:\xxxx\github\mmcv\mmcv\utils\registry.py", line 54, in build_from_cfg raise type(e)(f'{obj_cls.name}: {e}') KeyError: "EncoderDecoder: 'mit_b1 is not in the models registry'"

请问大神如何解决该问题? mmcv-full, mmsegmentation以及您的SegFormer是否需要通过特定的代码版本一一对应才行?

heblade avatar Aug 06 '21 11:08 heblade

我也遇到这个问题了,请问您解决了吗?

TBD1 avatar Dec 03 '21 03:12 TBD1

执行 pip install -e . --user 即可

ZhaoNan1 avatar Dec 28 '21 09:12 ZhaoNan1

@ZhaoNan1 yes, you are right

wujiang0156 avatar May 09 '23 12:05 wujiang0156

how to fix OSError: EncoderDecoder: pretrained/mit_b5.pth is not a checkpoint file

FanoShannon avatar Sep 09 '23 10:09 FanoShannon