用MobileNetv2作为backbone训练Faster RCNN之后,进行Validation会报错

Author: Zhangjq7585Created Jul 2, 2024Updated Jan 10, 2025

博主您好,我在用MobileNetv2作为backbone训练Faster RCNN之后,进行Validation时,加载训练好的mobile-model-24.pth会报错。 Traceback (most recent call last): File "validation.py", line 215, in main(args) File "validation.py", line 140, in main model.load_state_dict(weights_dict,strict=False) File "/root/miniconda3/envs/pytorch1.12/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1604, in load_state_dict raise RuntimeError('Error(s) in loading state_dict for {}:\n\t{}'.format( RuntimeError: Error(s) in loading state_dict for FasterRCNN: size mismatch for rpn.head.conv.weight: copying a param with shape torch.Size([1280, 1280, 3, 3]) from checkpoint, the shape in current model is torch.Size([256, 256, 3, 3]). size mismatch for rpn.head.conv.bias: copying a param with shape torch.Size([1280]) from checkpoint, the shape in current model is torch.Size([256]). size mismatch for rpn.head.cls_logits.weight: copying a param with shape torch.Size([15, 1280, 1, 1]) from checkpoint, the shape in current model is torch.Size([3, 256, 1, 1]). size mismatch for rpn.head.cls_logits.bias: copying a param with shape torch.Size([15]) from checkpoint, the shape in current model is torch.Size([3]). size mismatch for rpn.head.bbox_pred.weight: copying a param with shape torch.Size([60, 1280, 1, 1]) from checkpoint, the shape in current model is torch.Size([12, 256, 1, 1]). size mismatch for rpn.head.bbox_pred.bias: copying a param with shape torch.Size([60]) from checkpoint, the shape in current model is torch.Size([12]). size mismatch for roi_heads.box_head.fc6.weight: copying a param with shape torch.Size([1024, 62720]) from checkpoint, the shape in current model is torch.Size([1024, 12544]).

但是我用res50fpn作为backbone训练Faster RCNN之后,Validation的时候加载训练好的res50fpn.pth就没错。

360截图20240702102500702

Source: WZMIAOMIAO/deep-learning-for-image-processing