You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apple M1 Pro运行YOLO-NAS推理视频遇topk RuntimeError求助

在Apple M1 Pro上运行YOLO-NAS视频推理时出现topk相关RuntimeError

问题场景

在Apple M1 Pro设备上测试SuperGradients的YOLO-NAS模型,执行以下视频推理代码:

from super_gradients.training import models

model = models.get("yolo_nas_s_int8", pretrained_weights="coco")
model.to("mps")
model.predict("video_path") # 触发错误

运行后抛出错误:

RuntimeError: Currently topk on mps works only for k<=16

原因分析

  • SuperGradients官方文档未明确标注支持MPS设备,model.to("mps")仅完成设备迁移,但模型内部推理逻辑中使用的topk操作超出了当前PyTorch MPS后端的限制(仅支持k≤16)
  • 该问题是PyTorch MPS后端的已知限制,即使使用最新的PyTorch nightly版本(2.1.0.dev20230716)仍存在此问题
  • Ultralytics YOLOv8可正常运行MPS,是因为其推理逻辑中对topk的使用符合MPS后端的限制

解决方案

  • 临时替代方案:切换到CPU或CUDA设备运行,修改代码为model.to("cpu")或model.to("cuda")(若有外接GPU)
  • 等待官方修复:待PyTorch MPS后端支持更大k值的topk操作后,再尝试使用MPS运行
  • 自定义修改(需熟悉模型代码):手动调整YOLO-NAS推理阶段topk的k值至16以内,注意此操作可能降低检测结果的召回率

内容的提问来源于stack exchange,提问作者Oscar Wan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 01:54:57