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

部署YOLOv8至GPU时遭遇OSError 22错误,请求技术支持

YOLOv8 GPU训练报错解决指南

问题详情

使用Ultralytics官网提供的YOLOv8训练代码:

import torch
from ultralytics import YOLO
model = YOLO('yolov8n.yaml')  # build a new model from YAML
model = YOLO('yolov8n.pt')  # load a pretrained model (recommended for training)
model = YOLO('yolov8n.yaml').load('yolov8n.pt') 
model.train(data='coco128.yaml', epochs=100, imgsz=640)  # Train the model

运行环境:

  • Ultralytics YOLOv8.0.90
  • Python 3.8.2
  • torch 1.12.0+cu113
  • CUDA:0(NVIDIA GeForce RTX 3060,12288MiB)

GPU训练时持续报错,CPU训练可正常运行(耗时3小时),报错信息如下:

train: Scanning E:\python_learning\datasets\coco128\labels\train2017.cache... 126 images, 2 backgrounds, 0 corrupt: 100%|██████████| 128/128 [00:00<?, ?it/s]
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Program Files\Python38\lib\multiprocessing\spawn.py", line 116, in spawn_main
    exitcode = _main(fd, parent_sentinel)
  File "C:\Program Files\Python38\lib\multiprocessing\spawn.py", line 125, in _main
    prepare(preparation_data)
  File "C:\Program Files\Python38\lib\multiprocessing\spawn.py", line 236, in prepare
    _fixup_main_from_path(data['init_main_from_path'])
  File "C:\Program Files\Python38\lib\multiprocessing\spawn.py", line 287, in _fixup_main_from_path
    main_content = runpy.run_path(main_path,
  File "C:\Program Files\Python38\lib\runpy.py", line 262, in run_path
    code, fname = _get_code_from_file(run_name, path_name)
  File "C:\Program Files\Python38\lib\runpy.py", line 232, in _get_code_from_file
    with io.open_code(fname) as f:
OSError: [Errno 22] Invalid argument: 'E:\\python_learning\\venv\\<input>'

报错原因

核心问题是多进程训练无法识别交互式环境的脚本路径:GPU训练默认启用多进程加速,但如果在Python交互式shell、Jupyter Notebook等环境中运行代码,系统找不到实际的脚本文件路径(报错中的<input>就是证据),导致进程初始化失败。CPU训练默认单进程,因此不受影响。

解决方案

  1. 使用独立脚本文件运行
    将训练代码保存为train.py文件,通过命令行执行:

    python train.py
    

    这是最可靠的解决方式,多进程能正确识别脚本路径。

  2. 禁用多进程训练
    如果必须在交互式环境运行,在model.train()中添加workers=0参数,强制单进程:

    model.train(data='coco128.yaml', epochs=100, imgsz=640, workers=0)
    

    注意:禁用多进程会降低GPU训练速度。

  3. 升级YOLOv8版本
    旧版本(如8.0.90)存在多进程路径兼容问题,升级到最新版本:

    pip install ultralytics --upgrade
    
  4. 验证数据集路径
    确认coco128.yaml中的数据集路径配置正确,避免使用特殊字符,路径可统一使用正斜杠/:

    train: E:/python_learning/datasets/coco128/images/train2017/
    val: E:/python_learning/datasets/coco128/images/val2017/
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 09:27:43