lyuwenyu / RT-DETR

[CVPR 2024] Official RT-DETR (RTDETR paddle pytorch), Real-Time DEtection TRansformer, DETRs Beat YOLOs on Real-time Object Detection. 🔥 🔥 🔥

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

无法测试自己训练的权重

wangmj6 opened this issue · comments

在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

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

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

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


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

解决了

解决了

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