admin管理员组

文章数量:1438482

非nvidia卡torchvision报错修复: operator torchvision::nms does not exist

在Ascend 910b上安装vllm, 会自动把torchaudio和torchvision安装上去.

安装前

代码语言:shell复制
pip list | grep torch
torch                             2.5.1+cpu
torch-npu                         2.5.1.dev20250320

安装vllm

代码语言:shell复制
# Install vllm-project/vllm from pypi
pip install vllm==0.7.3

# Install vllm-project/vllm-ascend from pypi.
pip install vllm-ascend==0.7.3rc1 --extra-index /

安装vllm后:

代码语言:shell复制
pip list | grep torch
torch                             2.5.1+cpu
torch-npu                         2.5.1.dev20250320
torchaudio                        2.5.1
torchvision                       0.20.1

此时执行检测脚本, 会报错operator torchvision::nms does not exist.

python example.py

代码语言:shell复制
Traceback (most recent call last):
  File "/data/miniconda3/envs/ascend/lib/python3.10/site-packages/transformers/utils/import_utils.py", line 1967, in _get_module
    return importlib.import_module("." + module_name, self.__name__)
  File "/data/miniconda3/envs/ascend/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/data/miniconda3/envs/ascend/lib/python3.10/site-packages/transformers/processing_utils.py", line 33, in <module>
    from .image_utils import (
  File "/data/miniconda3/envs/ascend/lib/python3.10/site-packages/transformers/image_utils.py", line 64, in <module>
    from torchvision import io as torchvision_io
  File "/data/miniconda3/envs/ascend/lib/python3.10/site-packages/torchvision/__init__.py", line 10, in <module>
    from torchvision import _meta_registrations, datasets, io, models, ops, transforms, utils  # usort:skip
  File "/data/miniconda3/envs/ascend/lib/python3.10/site-packages/torchvision/_meta_registrations.py", line 164, in <module>
    def meta_nms(dets, scores, iou_threshold):
  File "/data/miniconda3/envs/ascend/lib/python3.10/site-packages/torch/library.py", line 795, in register
    use_lib._register_fake(op_name, func, _stacklevel=stacklevel + 1)
  File "/data/miniconda3/envs/ascend/lib/python3.10/site-packages/torch/library.py", line 184, in _register_fake
    handle = entry.fake_impl.register(func_to_register, source)
  File "/data/miniconda3/envs/ascend/lib/python3.10/site-packages/torch/_library/fake_impl.py", line 31, in register
    if torch._C._dispatch_has_kernel_for_dispatch_key(self.qualname, "Meta"):
RuntimeError: operator torchvision::nms does not exist

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "./vllm/pta/example.py", line 1, in <module>
    from vllm import LLM, SamplingParams
  File "/data/miniconda3/envs/ascend/lib/python3.10/site-packages/vllm/__init__.py", line 11, in <module>
    from vllm.engine.arg_utils import AsyncEngineArgs, EngineArgs
  File "/data/miniconda3/envs/ascend/lib/python3.10/site-packages/vllm/engine/arg_utils.py", line 13, in <module>
    from vllm.config import (CacheConfig, CompilationConfig, ConfigFormat,
  File "/data/miniconda3/envs/ascend/lib/python3.10/site-packages/vllm/config.py", line 24, in <module>
    from vllm.model_executor.layers.quantization import (QUANTIZATION_METHODS,
  File "/data/miniconda3/envs/ascend/lib/python3.10/site-packages/vllm/model_executor/__init__.py", line 3, in <module>
    from vllm.model_executor.parameter import (BasevLLMParameter,
  File "/data/miniconda3/envs/ascend/lib/python3.10/site-packages/vllm/model_executor/parameter.py", line 9, in <module>
    from vllm.distributed import get_tensor_model_parallel_rank
  File "/data/miniconda3/envs/ascend/lib/python3.10/site-packages/vllm/distributed/__init__.py", line 3, in <module>
    from munication_op import *
  File "/data/miniconda3/envs/ascend/lib/python3.10/site-packages/vllm/distributed/communication_op.py", line 8, in <module>
    from .parallel_state import get_tp_group
  File "/data/miniconda3/envs/ascend/lib/python3.10/site-packages/vllm/distributed/parallel_state.py", line 40, in <module>
    import vllm.distributed.kv_transfer.kv_transfer_agent as kv_transfer
  File "/data/miniconda3/envs/ascend/lib/python3.10/site-packages/vllm/distributed/kv_transfer/kv_transfer_agent.py", line 16, in <module>
    from vllm.distributed.kv_transfer.kv_connector.factory import (
  File "/data/miniconda3/envs/ascend/lib/python3.10/site-packages/vllm/distributed/kv_transfer/kv_connector/factory.py", line 6, in <module>
    from .base import KVConnectorBase
  File "/data/miniconda3/envs/ascend/lib/python3.10/site-packages/vllm/distributed/kv_transfer/kv_connector/base.py", line 15, in <module>
    from vllm.sequence import IntermediateTensors
  File "/data/miniconda3/envs/ascend/lib/python3.10/site-packages/vllm/sequence.py", line 17, in <module>
    from vllm.inputs import SingletonInputs, SingletonInputsAdapter
  File "/data/miniconda3/envs/ascend/lib/python3.10/site-packages/vllm/inputs/__init__.py", line 9, in <module>
    from .registry import (DummyData, InputContext, InputProcessingContext,
  File "/data/miniconda3/envs/ascend/lib/python3.10/site-packages/vllm/inputs/registry.py", line 10, in <module>
    from transformers import BatchFeature, PretrainedConfig, ProcessorMixin
  File "<frozen importlib._bootstrap>", line 1075, in _handle_fromlist
  File "/data/miniconda3/envs/ascend/lib/python3.10/site-packages/transformers/utils/import_utils.py", line 1955, in __getattr__
    module = self._get_module(self._class_to_module[name])
  File "/data/miniconda3/envs/ascend/lib/python3.10/site-packages/transformers/utils/import_utils.py", line 1969, in _get_module
    raise RuntimeError(
RuntimeError: Failed to import transformers.processing_utils because of the following error (look up to see its traceback):
operator torchvision::nms does not exist
[ERROR] 2025-04-23-11:48:07 (PID:6590, Device:-1, RankID:-1) ERR99999 UNKNOWN applicaiton exception

这个原因是因为torchvision安装了gpu版本, 而又不是nvidia卡, 导致的报错. 安装cpu版本的torchvision即可.

首先卸载已有torchaudio torchvision

代码语言:shell复制
pip uninstall torchaudio torchvision

然后安装cpu版本, 使用--extra-index /指向index即可确定安装哪个版本.

代码语言:shell复制
pip install torchaudio==2.5.1 torchvision==0.20.1 --extra-index /

本文标签: 非nvidia卡torchvision报错修复 operator torchvisionnms does not exist