lyuwenyu / RT-DETR

[CVPR 2024] Official RT-DETR (RTDETR paddle pytorch), Real-Time DEtection TRansformer, DETRs Beat YOLOs on Real-time Object Detection. 🔥 🔥 🔥
Apache License 2.0
2.31k stars 259 forks source link

无法测试自己训练的权重 #190

Closed wangmj6 closed 8 months ago

wangmj6 commented 8 months ago

在train.py中设置为test-only,并将经过rt-detr-18训练好输出的权重放在与下载的预训练权重同样的位置,并改为与预训练权重相同的名称后,开始运行train.py,会报如下错误: Traceback (most recent call last): File "/media/wang/e28966b9-0a67-4a52-9682-14b0fa37f693/wang/Downloads/RT-DETR-main/rtdetr_pytorch/train.py", line 49, in main(args) File "/media/wang/e28966b9-0a67-4a52-9682-14b0fa37f693/wang/Downloads/RT-DETR-main/rtdetr_pytorch/train.py", line 32, in main solver.val() File "/media/wang/e28966b9-0a67-4a52-9682-14b0fa37f693/wang/Downloads/RT-DETR-main/rtdetr_pytorch/src/solver/det_solver.py", line 93, in val self.eval() File "/media/wang/e28966b9-0a67-4a52-9682-14b0fa37f693/wang/Downloads/RT-DETR-main/rtdetr_pytorch/src/solver/solver.py", line 61, in eval self.setup() File "/media/wang/e28966b9-0a67-4a52-9682-14b0fa37f693/wang/Downloads/RT-DETR-main/rtdetr_pytorch/src/solver/solver.py", line 28, in setup self.model = dist.warp_model(cfg.model.to(device), cfg.find_unused_parameters, cfg.sync_bn) File "/media/wang/e28966b9-0a67-4a52-9682-14b0fa37f693/wang/Downloads/RT-DETR-main/rtdetr_pytorch/src/core/yaml_config.py", line 44, in model self._model = create(self.yaml_cfg['model']) File "/media/wang/e28966b9-0a67-4a52-9682-14b0fa37f693/wang/Downloads/RT-DETR-main/rtdetr_pytorch/src/core/yaml_utils.py", line 123, in create cls_kwargs[k] = create(_cfg['_name']) File "/media/wang/e28966b9-0a67-4a52-9682-14b0fa37f693/wang/Downloads/RT-DETR-main/rtdetr_pytorch/src/core/yaml_utils.py", line 148, in create return cls(**cls_kwargs) File "/media/wang/e28966b9-0a67-4a52-9682-14b0fa37f693/wang/Downloads/RT-DETR-main/rtdetr_pytorch/src/nn/backbone/presnet.py", line 198, in init self.load_state_dict(state) File "/home/wang/anaconda3/envs/detr/lib/python3.8/site-packages/torch/nn/modules/module.py", line 2041, in load_state_dict raise RuntimeError('Error(s) in loading state_dict for {}:\n\t{}'.format( RuntimeError: Error(s) in loading state_dict for PResNet: Missing key(s) in state_dict: "conv1.conv1_1.conv.weight", "conv1.conv1_1.norm.weight", "conv1.conv1_1.norm.bias", "conv1.conv1_1.norm.running_mean", "conv1.conv1_1.norm.running_var", "conv1.conv1_2.conv.weight", "conv1.conv1_2.norm.weight", "conv1.conv1_2.norm.bias", "conv1.conv1_2.norm.running_mean", "conv1.conv1_2.norm.running_var", "conv1.conv1_3.conv.weight", "conv1.conv1_3.norm.weight", "conv1.conv1_3.norm.bias", "conv1.conv1_3.norm.running_mean", "conv1.conv1_3.norm.running_var", "res_layers.0.blocks.0.short.conv.weight", "res_layers.0.blocks.0.short.norm.weight", "res_layers.0.blocks.0.short.norm.bias", "res_layers.0.blocks.0.short.norm.running_mean", "res_layers.0.blocks.0.short.norm.running_var", "res_layers.0.blocks.0.branch2a.conv.weight", "res_layers.0.blocks.0.branch2a.norm.weight", "res_layers.0.blocks.0.branch2a.norm.bias", "res_layers.0.blocks.0.branch2a.norm.running_mean", "res_layers.0.blocks.0.branch2a.norm.running_var", "res_layers.0.blocks.0.branch2b.conv.weight", "res_layers.0.blocks.0.branch2b.norm.weight", "res_layers.0.blocks.0.branch2b.norm.bias", "res_layers.0.blocks.0.branch2b.norm.running_mean", "res_layers.0.blocks.0.branch2b.norm.running_var", "res_layers.0.blocks.1.branch2a.conv.weight", "res_layers.0.blocks.1.branch2a.norm.weight", "res_layers.0.blocks.1.branch2a.norm.bias", "res_layers.0.blocks.1.branch2a.norm.running_mean", "res_layers.0.blocks.1.branch2a.norm.running_var", "res_layers.0.blocks.1.branch2b.conv.weight", "res_layers.0.blocks.1.branch2b.norm.weight", "res_layers.0.blocks.1.branch2b.norm.bias", "res_layers.0.blocks.1.branch2b.norm.running_mean", "res_layers.0.blocks.1.branch2b.norm.running_var", "res_layers.1.blocks.0.short.conv.conv.weight", "res_layers.1.blocks.0.short.conv.norm.weight", "res_layers.1.blocks.0.short.conv.norm.bias", "res_layers.1.blocks.0.short.conv.norm.running_mean", "res_layers.1.blocks.0.short.conv.norm.running_var", "res_layers.1.blocks.0.branch2a.conv.weight", "res_layers.1.blocks.0.branch2a.norm.weight", "res_layers.1.blocks.0.branch2a.norm.bias", "res_layers.1.blocks.0.branch2a.norm.running_mean", "res_layers.1.blocks.0.branch2a.norm.running_var", "res_layers.1.blocks.0.branch2b.conv.weight", "res_layers.1.blocks.0.branch2b.norm.weight", "res_layers.1.blocks.0.branch2b.norm.bias", "res_layers.1.blocks.0.branch2b.norm.running_mean", "res_layers.1.blocks.0.branch2b.norm.running_var", "res_layers.1.blocks.1.branch2a.conv.weight", "res_layers.1.blocks.1.branch2a.norm.weight", "res_layers.1.blocks.1.branch2a.norm.bias", "res_layers.1.blocks.1.branch2a.norm.running_mean", "res_layers.1.blocks.1.branch2a.norm.running_var", "res_layers.1.blocks.1.branch2b.conv.weight", "res_layers.1.blocks.1.branch2b.norm.weight", "res_layers.1.blocks.1.branch2b.norm.bias", "res_layers.1.blocks.1.branch2b.norm.running_mean", "res_layers.1.blocks.1.branch2b.norm.running_var", "res_layers.2.blocks.0.short.conv.conv.weight", "res_layers.2.blocks.0.short.conv.norm.weight", "res_layers.2.blocks.0.short.conv.norm.bias", "res_layers.2.blocks.0.short.conv.norm.running_mean", "res_layers.2.blocks.0.short.conv.norm.running_var", "res_layers.2.blocks.0.branch2a.conv.weight", "res_layers.2.blocks.0.branch2a.norm.weight", "res_layers.2.blocks.0.branch2a.norm.bias", "res_layers.2.blocks.0.branch2a.norm.running_mean", "res_layers.2.blocks.0.branch2a.norm.running_var", "res_layers.2.blocks.0.branch2b.conv.weight", "res_layers.2.blocks.0.branch2b.norm.weight", "res_layers.2.blocks.0.branch2b.norm.bias", "res_layers.2.blocks.0.branch2b.norm.running_mean", "res_layers.2.blocks.0.branch2b.norm.running_var", "res_layers.2.blocks.1.branch2a.conv.weight", "res_layers.2.blocks.1.branch2a.norm.weight", "res_layers.2.blocks.1.branch2a.norm.bias", "res_layers.2.blocks.1.branch2a.norm.running_mean", "res_layers.2.blocks.1.branch2a.norm.running_var", "res_layers.2.blocks.1.branch2b.conv.weight", "res_layers.2.blocks.1.branch2b.norm.weight", "res_layers.2.blocks.1.branch2b.norm.bias", "res_layers.2.blocks.1.branch2b.norm.running_mean", "res_layers.2.blocks.1.branch2b.norm.running_var", "res_layers.3.blocks.0.short.conv.conv.weight", "res_layers.3.blocks.0.short.conv.norm.weight", "res_layers.3.blocks.0.short.conv.norm.bias", "res_layers.3.blocks.0.short.conv.norm.running_mean", "res_layers.3.blocks.0.short.conv.norm.running_var", "res_layers.3.blocks.0.branch2a.conv.weight", "res_layers.3.blocks.0.branch2a.norm.weight", "res_layers.3.blocks.0.branch2a.norm.bias", "res_layers.3.blocks.0.branch2a.norm.running_mean", "res_layers.3.blocks.0.branch2a.norm.running_var", "res_layers.3.blocks.0.branch2b.conv.weight", "res_layers.3.blocks.0.branch2b.norm.weight", "res_layers.3.blocks.0.branch2b.norm.bias", "res_layers.3.blocks.0.branch2b.norm.running_mean", "res_layers.3.blocks.0.branch2b.norm.running_var", "res_layers.3.blocks.1.branch2a.conv.weight", "res_layers.3.blocks.1.branch2a.norm.weight", "res_layers.3.blocks.1.branch2a.norm.bias", "res_layers.3.blocks.1.branch2a.norm.running_mean", "res_layers.3.blocks.1.branch2a.norm.running_var", "res_layers.3.blocks.1.branch2b.conv.weight", "res_layers.3.blocks.1.branch2b.norm.weight", "res_layers.3.blocks.1.branch2b.norm.bias", "res_layers.3.blocks.1.branch2b.norm.running_mean", "res_layers.3.blocks.1.branch2b.norm.running_var". Unexpected key(s) in state_dict: "model", "date", "last_epoch", "optimizer", "lr_scheduler", "ema".

Process finished with exit code 1

请问作者可以帮忙告知解决方法不?

lyuwenyu commented 8 months ago

并将经过rt-detr-18训练好输出的权重放在与下载的预训练权重同样的位置,并改为与预训练权重相同的名称后,

没懂你这样做的目的是啥,test时候直接指定训练完的模型就行


如有其他问题请先star本仓库并继续留言

wangmj6 commented 8 months ago

解决了

dwuhww commented 4 months ago

解决了

你好,请问你是如何解决的呢