在配置Yolov12的推理验证过程中,出现了下述问题。
(yolov12) PS E:\YOLOv12\yolov12> yolo predict model=yolov12n.pt source='https://ultralytics.com/images/bus.jpg'
FlashAttention is not available on this device. Using scaled_dot_product_attention instead.
Ultralytics 8.3.63 🚀 Python-3.11.11 torch-2.6.0+cu124 CUDA:0 (NVIDIA GeForce GTX 1660 SUPER, 6144MiB)
YOLOv12n summary (fused): 352 layers, 2,590,824 parameters, 0 gradients
Found https://ultralytics.com/images/bus.jpg locally at bus.jpg
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "D:\Anaconda3\envs\yolov12\Scripts\yolo.exe\__main__.py", line 7, in <module>
File "E:\YOLOv12\yolov12\ultralytics\cfg\__init__.py", line 983, in entrypoint
getattr(model, mode)(**overrides) # default args from model
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\YOLOv12\yolov12\ultralytics\engine\model.py", line 560, in predict
return self.predictor.predict_cli(source=source) if is_cli else self.predictor(source=source, stream=stream)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\YOLOv12\yolov12\ultralytics\engine\predictor.py", line 188, in predict_cli
for _ in gen: # sourcery skip: remove-empty-nested-block, noqa
File "D:\Anaconda3\envs\yolov12\Lib\site-packages\torch\utils\_contextlib.py", line 36, in generator_context
response = gen.send(None)
^^^^^^^^^^^^^^
File "E:\YOLOv12\yolov12\ultralytics\engine\predictor.py", line 239, in stream_inference
self.model.warmup(imgsz=(1 if self.model.pt or self.model.triton else self.dataset.bs, 3, *self.imgsz))
File "E:\YOLOv12\yolov12\ultralytics\nn\autobackend.py", line 731, in warmup
self.forward(im) # warmup
^^^^^^^^^^^^^^^^
File "E:\YOLOv12\yolov12\ultralytics\nn\autobackend.py", line 524, in forward
y = self.model(im, augment=augment, visualize=visualize, embed=embed)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Anaconda3\envs\yolov12\Lib\site-packages\torch\nn\modules\module.py", line 1739, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Anaconda3\envs\yolov12\Lib\site-packages\torch\nn\modules\module.py", line 1750, in _call_impl
return forward_call(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\YOLOv12\yolov12\ultralytics\nn\tasks.py", line 111, in forward
return self.predict(x, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\YOLOv12\yolov12\ultralytics\nn\tasks.py", line 129, in predict
return self._predict_once(x, profile, visualize, embed)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\YOLOv12\yolov12\ultralytics\nn\tasks.py", line 150, in _predict_once
x = m(x) # run
^^^^
File "D:\Anaconda3\envs\yolov12\Lib\site-packages\torch\nn\modules\module.py", line 1739, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Anaconda3\envs\yolov12\Lib\site-packages\torch\nn\modules\module.py", line 1750, in _call_impl
return forward_call(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\YOLOv12\yolov12\ultralytics\nn\modules\block.py", line 1377, in forward
y.extend(m(y[-1]) for m in self.m)
File "E:\YOLOv12\yolov12\ultralytics\nn\modules\block.py", line 1377, in <genexpr>
y.extend(m(y[-1]) for m in self.m)
^^^^^^^^
File "D:\Anaconda3\envs\yolov12\Lib\site-packages\torch\nn\modules\module.py", line 1739, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Anaconda3\envs\yolov12\Lib\site-packages\torch\nn\modules\module.py", line 1750, in _call_impl
return forward_call(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Anaconda3\envs\yolov12\Lib\site-packages\torch\nn\modules\container.py", line 250, in forward
input = module(input)
^^^^^^^^^^^^^
File "D:\Anaconda3\envs\yolov12\Lib\site-packages\torch\nn\modules\module.py", line 1739, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Anaconda3\envs\yolov12\Lib\site-packages\torch\nn\modules\module.py", line 1750, in _call_impl
return forward_call(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\YOLOv12\yolov12\ultralytics\nn\modules\block.py", line 1321, in forward
x = x + self.attn(x)
^^^^^^^^^^^^
File "D:\Anaconda3\envs\yolov12\Lib\site-packages\torch\nn\modules\module.py", line 1739, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Anaconda3\envs\yolov12\Lib\site-packages\torch\nn\modules\module.py", line 1750, in _call_impl
return forward_call(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\YOLOv12\yolov12\ultralytics\nn\modules\block.py", line 1248, in forward
qk = self.qk(x).flatten(2)
^^^^^^^
File "D:\Anaconda3\envs\yolov12\Lib\site-packages\torch\nn\modules\module.py", line 1928, in __getattr__
raise AttributeError(
AttributeError: 'AAttn' object has no attribute 'qk'. Did you mean: 'qkv'?
此时你的处理过程非常简单,你只需要将代码版本进行更新
pip install --upgrade ultralytics
在终端运行上述代码后,再运行
yolo predict model=yolov12n.pt source='https://ultralytics.com/images/bus.jpg'
终端得到结果
(yolov12) PS E:\YOLOv12\yolov12> yolo predict model=yolov12n.pt source='https://ultralytics.com/images/bus.jpg'
Creating new Ultralytics Settings v0.0.6 file ✅
View Ultralytics Settings with 'yolo settings' or at 'C:\Users\XX\AppData\Roaming\Ultralytics\settings.json'
Update Settings with 'yolo settings key=value', i.e. 'yolo settings runs_dir=path/to/dir'. For help see https://docs.ultralytics.com/quickstart/#ultralytics-settings.
Ultralytics 8.3.95 🚀 Python-3.11.11 torch-2.6.0+cu124 CUDA:0 (NVIDIA GeForce GTX 1660 SUPER, 6144MiB)
YOLOv12n summary (fused): 159 layers, 2,590,824 parameters, 0 gradients, 6.5 GFLOPs
Found https://ultralytics.com/images/bus.jpg locally at bus.jpg
image 1/1 E:\YOLOv12\yolov12\bus.jpg: 640x480 4 persons, 1 bus, 49.4ms
Speed: 7.1ms preprocess, 49.4ms inference, 136.0ms postprocess per image at shape (1, 3, 640, 480)
Results saved to runs\detect\predict4
💡 Learn more at https://docs.ultralytics.com/modes/predict
问题得到解决