Ultralytics安装成功但执行yolo predict报错:nthreads超NUMEXPR_MAX_THREADS
通过Anaconda Prompt结合pip完成Ultralytics安装,为启用GPU支持,已执行命令pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118安装适配cu118的PyTorch。但运行测试命令yolo predict model=yolov8n.pt imgsz=640 conf=0.25时,除少量版本警告外,出现如下错误:
Ultralytics YOLOv8.0.196 Python-3.11.5 torch-2.4.0+cu118 CUDA:0 (NVIDIA GeForce RTX 3080 Ti, 12288MiB)
Error. nthreads cannot be larger than environment variable "NUMEXPR_MAX_THREADS" (8)YOLOv8n summary (fused): 168 layers, 3151904 parameters, 0 gradients, 8.7 GFLOPs
无任何结果输出,尝试修改NUMEXPR_MAX_THREADS默认值未成功,且找不到较多nthreads相关信息。
临时设置环境变量(单次会话生效)
在Anaconda Prompt中先执行以下命令,再运行YOLO预测命令:set NUMEXPR_MAX_THREADS=16 # 数值可设为大于8,建议匹配你的CPU核心数永久设置环境变量(Windows系统)
- 右键「此电脑」→「属性」→「高级系统设置」
- 点击「环境变量」,在「系统变量」区域点击「新建」
- 变量名填
NUMEXPR_MAX_THREADS,变量值填合适数值(比如16,不超过CPU物理核心数即可) - 保存后重启Anaconda Prompt,再执行预测命令
Python脚本内直接设置
如果是通过Python代码调用YOLOv8,在代码开头添加环境变量设置:import os os.environ['NUMEXPR_MAX_THREADS'] = '16' from ultralytics import YOLO model = YOLO('yolov8n.pt') results = model.predict(imgsz=640, conf=0.25)降级Ultralytics版本
部分新版本YOLOv8与numexpr线程适配存在问题,可尝试降级到稳定版本:pip install ultralytics==8.0.150
内容的提问来源于stack exchange,提问作者Diego Cruz Jarquin

