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

YOLOv8训练触发RuntimeError:进程引导未完成时启动新进程求助

解决YOLOv8训练时的RuntimeError进程启动问题

这个错误是Windows系统下Python多进程机制导致的——YOLOv8训练时会启动多进程加载数据集,但Windows不支持类Unix的fork机制,若训练代码未正确包裹,会导致子进程重复执行主模块代码,触发进程启动冲突。

解决方法

把所有执行训练、验证、预测等操作的代码,放到if __name__ == '__main__':代码块中即可。如果不需要将代码打包成可执行文件,freeze_support()可以省略。

修改后的完整代码

from ultralytics import YOLO

def main():
    # 加载模型
    model = YOLO("yolov8n.pt")  # 加载预训练模型(推荐用于训练)

    # 模型操作
    results = model.train(data="coco128.yaml", epochs=3)  # 训练模型
    results = model.val()  # 在验证集评估性能
    results = model("https://ultralytics.com/images/bus.jpg")  # 图像预测
    success = YOLO("yolov8n.pt").export(format="onnx")  # 导出为ONNX格式

if __name__ == '__main__':
    # freeze_support()  # 仅打包成exe时需要,否则可注释
    main()

原理说明

在Windows中,Python启动子进程时会重新导入主模块。没有if __name__ == '__main__':判断的话,训练代码会被子进程再次执行,导致在主进程还未完成初始化时就启动新进程,从而触发错误。该判断块内的代码只会在主进程执行,子进程导入模块时不会执行,彻底避免了进程启动冲突。

内容的提问来源于stack exchange,提问作者Prince David Nyarko

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 00:15:29