使用yolov8 classify 分类预测报错:

在这里插入图片描述

错误一:

 File "/root/python-workspace/ultralytics-main/ultralytics/engine/predictor.py", line 281, in stream_inference
    im = self.preprocess(im0s)
         ^^^^^^^^^^^^^^^^^^^^^
  File "/root/python-workspace/ultralytics-main/ultralytics/models/yolo/classify/predict.py", line 46, in preprocess
    [self.transforms(Image.fromarray(cv2.cvtColor(im, cv2.COLOR_BGR2RGB))) for im in img], dim=0
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/python-workspace/ultralytics-main/ultralytics/models/yolo/classify/predict.py", line 46, in <listcomp>
    [self.transforms(Image.fromarray(cv2.cvtColor(im, cv2.COLOR_BGR2RGB))) for im in img], dim=0
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/anaconda3/lib/python3.11/site-packages/torchvision/transforms/transforms.py", line 95, in __call__
    img = t(img)
          ^^^^^^
AttributeError: 'Image' object has no attribute 'shape'. Did you mean: 'save'?

错误二:

WARNING ⚠️ Ultralytics settings reset to default values. This may be due to a possible problem with your settings or a recent ultralytics package update. 
View settings with 'yolo settings' or at '/root/.config/Ultralytics/settings.yaml'
Update settings with 'yolo settings key=value', i.e. 'yolo settings runs_dir=path/to/dir'.

Traceback (most recent call last):
  File "/root/python-workspace/lifecycleClassifyPredict.py", line 5, in <module>
    results = model_cls("/root/python-workspace/ultralytics-main/56.png")
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/anaconda3/lib/python3.11/site-packages/ultralytics/engine/model.py", line 98, in __call__
    return self.predict(source, stream, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/anaconda3/lib/python3.11/site-packages/ultralytics/engine/model.py", line 257, in predict
    return self.predictor.predict_cli(source=source) if is_cli else self.predictor(source=source, stream=stream)
                                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/anaconda3/lib/python3.11/site-packages/ultralytics/engine/predictor.py", line 198, in __call__
    return list(self.stream_inference(source, model, *args, **kwargs))  # merge list of Result into one
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/anaconda3/lib/python3.11/site-packages/torch/utils/_contextlib.py", line 35, in generator_context
    response = gen.send(None)
               ^^^^^^^^^^^^^^
  File "/root/anaconda3/lib/python3.11/site-packages/ultralytics/engine/predictor.py", line 261, in stream_inference
    im = self.preprocess(im0s)
         ^^^^^^^^^^^^^^^^^^^^^
  File "/root/anaconda3/lib/python3.11/site-packages/ultralytics/models/yolo/classify/predict.py", line 36, in preprocess
    img = torch.stack([self.transforms(im) for im in img], dim=0)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/anaconda3/lib/python3.11/site-packages/ultralytics/models/yolo/classify/predict.py", line 36, in <listcomp>
    img = torch.stack([self.transforms(im) for im in img], dim=0)
                       ^^^^^^^^^^^^^^^^^^^
  File "/root/anaconda3/lib/python3.11/site-packages/torchvision/transforms/transforms.py", line 95, in __call__
    img = t(img)
          ^^^^^^
ValueError: too many values to unpack (expected 2)

产生原因:

应该是python版本问题或者是ultrlytics新版本未修复的bug

解决办法:

1、将python3.11 版本改为python3.10
2、pip install ultralytics==8.0.230

效果

在这里插入图片描述
至此,代码正常运行,不在报错啦

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐