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

Apple M2训练YOLOv8遇RuntimeError:Half精度上采样未实现

解决M2 Mac上YOLOv8训练的upsample_nearest2d_channels_last错误

在M2芯片Mac上训练自定义数据集的YOLOv8时,出现RuntimeError: "upsample_nearest2d_channels_last" not implemented for 'Half'错误,本质是MPS对部分半精度(FP16)算子支持不完善导致的。要全程强制使用FP32精度,只需在训练时做以下参数设置:

解决方案

  • 关闭自动混合精度(AMP):训练阶段通过amp=False禁用半精度训练,强制模型全程使用FP32
  • 确保验证阶段也关闭半精度:添加half=False参数,避免验证过程中触发半精度操作

修改后的训练代码:

from ultralytics import YOLO

model = YOLO('yolov8n.pt') 

results = model.train(
    data='MY_PATH/data.yaml',
    epochs=20,
    imgsz=640,
    device='mps',
    amp=False,
    half=False
)

原理说明

YOLOv8默认开启自动混合精度(amp=True)来加速训练,但MPS(Apple Silicon的PyTorch后端)对upsample_nearest2d这类算子的半精度实现存在缺失。关闭AMP后,模型的训练和验证过程都会使用FP32精度,避开不兼容的半精度操作,从而解决该报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 22:12:32