当前位置:网站首页>AttributeError: Can‘t get attribute ‘SPPF‘ on <module ‘models. common‘ from ‘/home/yolov5/models/comm

AttributeError: Can‘t get attribute ‘SPPF‘ on <module ‘models. common‘ from ‘/home/yolov5/models/comm

2022-07-06 06:47:00 Zhenhua oppo

I am here ubuntu The next has been successfully run yolov5 Multiple versions of , There are also environment deployment tutorials . Then because of the need to transform the model , I downloaded it from the non official website warehouse again yolov5 Code , However, the author of the warehouse did not indicate which version was the basis of the magic change . Then I use it normally 6.1 Version of the model , Of course, environment dependency does not need to be installed ,yolov5 The environment is the same , One time installation , Permanent operation .

Error message

function detect.py file , Then the following error report appears :

Namespace(agnostic_nms=False, augment=False, classes=None, conf_thres=0.25, device='', 
exist_ok=False, img_size=416, iou_thres=0.45, name='exp', project='runs/detect', 
rknn_mode=False, save_conf=False, save_txt=False, source='rtsp://admin:@192.168.144.64/h264/ch1
/main/av_stream', update=False, view_img=False, weights='./models/yolov5s.pt')
YOLOv5   torch 1.9.0 CPU

Traceback (most recent call last):
  File "detect.py", line 258, in <module>
    detect()
  File "detect.py", line 34, in detect
    model = attempt_load(weights, map_location=device)  # load FP32 model
  File "/home/firefly/yolov5-rknn/models/experimental.py", line 118, in attempt_load
    ckpt = torch.load(w, map_location=map_location)  # load
  File "/home/firefly/anaconda3/envs/yolo/lib/python3.8/site-packages/torch/serialization.py", line 607, in load
    return _load(opened_zipfile, map_location, pickle_module, **pickle_load_args)
  File "/home/firefly/anaconda3/envs/yolo/lib/python3.8/site-packages/torch/serialization.py", line 882, in _load
    result = unpickler.load()
  File "/home/firefly/anaconda3/envs/yolo/lib/python3.8/site-packages/torch/serialization.py", line 875, in find_class
    return super().find_class(mod_name, name)
AttributeError: Can't get attribute 'SPPF' on <module 'models.common' from '/home/firefly/rknn/models/common.py'>
Error reporting analysis

Positioning error , The discovery is in models.common In file , Without this SPPF Method . Online solutions , from 6.1 In the version SPPF Method , Then run and continue to report errors :

  File "/home/firefly/yolov5-rknn/models/yolo.py", line 58, in forward
    y[..., 2:4] = (y[..., 2:4] * 2) ** 2 * self.anchor_grid[i]  # wh
RuntimeError: The size of tensor a (52) must match the size of tensor b (56) at non-singleton dimension 3

The subsequent error reporting will be solved endlessly , And it doesn't apply at all , There are a lot of students eager for solutions under those comment areas .

Then I began to feel for myself , First, consider whether it is a model problem ,model Is loaded weights Of , Is it right? weights Version and yolov5 The version doesn't match . Then I asked she you to help me from github Download it. yolov5 3.0 The weight file of , Replace , Sure enough, the problem was solved successfully .

Error reporting solution

from yolov5 Warehouse Download the corresponding version of your code yolov5s.pt file , Otherwise, errors will be caused by the mismatch between the weight file version and the source code version . For example, after I download , Put it in models Next ,detect.py final weights The path is also modified :

parser.add_argument('--weights', nargs='+', type=str, default='./models/yolov5s.pt', help='model.pt path(s)')

python detect.py Rerun :

 Insert picture description here

原网站

版权声明
本文为[Zhenhua oppo]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/187/202207060635320393.html