Skip to content

AttributeError: 'AAttn' object has no attribute 'qkv'. Did you mean: 'qk'? #109

Description

@hhxdestiny

Hi, during inference using the YOLOv12 v1 model with Ultralytics, everything functions properly. However, when I switch to the YOLOv12 Turbo model, the following error is reported.

  • ultralytics 8.3.141
  • torch 2.7.0+cu12
 File "C:\Users\destiny\miniconda3\envs\ultralytics\Lib\site-packages\ultralytics\engine\model.py", line 185, in __call__
    return self.predict(source, stream, **kwargs)
           ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\destiny\miniconda3\envs\ultralytics\Lib\site-packages\ultralytics\engine\model.py", line 555, in predict
    return self.predictor.predict_cli(source=source) if is_cli else self.predictor(source=source, stream=stream)
                                                                    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\destiny\miniconda3\envs\ultralytics\Lib\site-packages\ultralytics\engine\predictor.py", line 218, in __call__
    return list(self.stream_inference(source, model, *args, **kwargs))  # merge list of Result into one
  File "C:\Users\destiny\miniconda3\envs\ultralytics\Lib\site-packages\torch\utils\_contextlib.py", line 36, in generator_context
    response = gen.send(None)
  File "C:\Users\destiny\miniconda3\envs\ultralytics\Lib\site-packages\ultralytics\engine\predictor.py", line 299, in stream_inference
    self.model.warmup(
    ~~~~~~~~~~~~~~~~~^
        imgsz=(1 if self.model.pt or self.model.triton else self.dataset.bs, self.model.ch, *self.imgsz)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "C:\Users\destiny\miniconda3\envs\ultralytics\Lib\site-packages\ultralytics\nn\autobackend.py", line 808, in warmup
    self.forward(im)  # warmup
    ~~~~~~~~~~~~^^^^
  File "C:\Users\destiny\miniconda3\envs\ultralytics\Lib\site-packages\ultralytics\nn\autobackend.py", line 592, in forward
    y = self.model(im, augment=augment, visualize=visualize, embed=embed, **kwargs)
  File "C:\Users\destiny\miniconda3\envs\ultralytics\Lib\site-packages\torch\nn\modules\module.py", line 1751, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
           ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "C:\Users\destiny\miniconda3\envs\ultralytics\Lib\site-packages\torch\nn\modules\module.py", line 1762, in _call_impl
    return forward_call(*args, **kwargs)
  File "C:\Users\destiny\miniconda3\envs\ultralytics\Lib\site-packages\ultralytics\nn\tasks.py", line 115, in forward
    return self.predict(x, *args, **kwargs)
           ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\destiny\miniconda3\envs\ultralytics\Lib\site-packages\ultralytics\nn\tasks.py", line 133, in predict
    return self._predict_once(x, profile, visualize, embed)
           ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\destiny\miniconda3\envs\ultralytics\Lib\site-packages\ultralytics\nn\tasks.py", line 156, in _predict_once
    x = m(x)  # run
  File "C:\Users\destiny\miniconda3\envs\ultralytics\Lib\site-packages\torch\nn\modules\module.py", line 1751, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
           ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "C:\Users\destiny\miniconda3\envs\ultralytics\Lib\site-packages\torch\nn\modules\module.py", line 1762, in _call_impl
    return forward_call(*args, **kwargs)
  File "C:\Users\destiny\miniconda3\envs\ultralytics\Lib\site-packages\ultralytics\nn\modules\block.py", line 1873, in forward
    y.extend(m(y[-1]) for m in self.m)
    ~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\destiny\miniconda3\envs\ultralytics\Lib\site-packages\ultralytics\nn\modules\block.py", line 1873, in <genexpr>
    y.extend(m(y[-1]) for m in self.m)
             ~^^^^^^^
  File "C:\Users\destiny\miniconda3\envs\ultralytics\Lib\site-packages\torch\nn\modules\module.py", line 1751, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
           ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "C:\Users\destiny\miniconda3\envs\ultralytics\Lib\site-packages\torch\nn\modules\module.py", line 1762, in _call_impl
    return forward_call(*args, **kwargs)
  File "C:\Users\destiny\miniconda3\envs\ultralytics\Lib\site-packages\torch\nn\modules\container.py", line 240, in forward
    input = module(input)
  File "C:\Users\destiny\miniconda3\envs\ultralytics\Lib\site-packages\torch\nn\modules\module.py", line 1751, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
           ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "C:\Users\destiny\miniconda3\envs\ultralytics\Lib\site-packages\torch\nn\modules\module.py", line 1762, in _call_impl
    return forward_call(*args, **kwargs)
  File "C:\Users\destiny\miniconda3\envs\ultralytics\Lib\site-packages\ultralytics\nn\modules\block.py", line 1803, in forward
    x = x + self.attn(x)
            ~~~~~~~~~^^^
  File "C:\Users\destiny\miniconda3\envs\ultralytics\Lib\site-packages\torch\nn\modules\module.py", line 1751, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
           ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "C:\Users\destiny\miniconda3\envs\ultralytics\Lib\site-packages\torch\nn\modules\module.py", line 1762, in _call_impl
    return forward_call(*args, **kwargs)
  File "C:\Users\destiny\miniconda3\envs\ultralytics\Lib\site-packages\ultralytics\nn\modules\block.py", line 1712, in forward
    qkv = self.qkv(x).flatten(2).transpose(1, 2)
          ^^^^^^^^
  File "C:\Users\destiny\miniconda3\envs\ultralytics\Lib\site-packages\torch\nn\modules\module.py", line 1940, in __getattr__
    raise AttributeError(
        f"'{type(self).__name__}' object has no attribute '{name}'"
    )
AttributeError: 'AAttn' object has no attribute 'qkv'. Did you mean: 'qk'?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions