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

Yolov3训练无法启动,卡在创建CPU线程提示且train/test.txt为空怎么解决

Darknet训练卡在CPU线程创建、train/test.txt为空问题解决方案

核心问题原因

Darknet初始化完CPU线程后需要加载train.txt中列出的训练样本,你当前train.txt/test.txt为空,框架没有可加载的训练数据,所以直接挂死无后续输出。

分步解决步骤

1. 重新生成有效train.txt/test.txt

  • 确认你的训练/测试图片存放的绝对路径,Colab环境下一般路径格式为/content/darknet/[你的图片文件夹路径]
  • 直接用find命令生成列表,无需依赖教程附带的生成脚本,避免脚本路径不匹配问题:
    生成训练集列表:
    find /content/darknet/data/train_images -name "*.jpg" > /content/darknet/data/train.txt
    
    生成测试集列表:
    find /content/darknet/data/test_images -name "*.jpg" > /content/darknet/data/test.txt
    

    注意替换命令中的图片文件夹路径为你实际的存放路径,图片后缀如果是png则将*.jpg改为*.png

  • 生成后验证内容:执行cat /content/darknet/data/train.txt,确认输出中有至少数十行图片路径,无内容则检查路径是否正确。

2. 核对Darknet配置文件

  • 打开你项目的.data配置文件,确认以下字段路径完全匹配实际文件路径:

    train = data/train.txt
    test = data/test.txt
    names = data/[你的类别名称文件].names
    backup = backup/

  • 确认.cfg模型配置文件中的classes参数和.names文件中的类别数量一致,yolo层前的卷积层filters参数符合3*(classes + 5)的计算规则。

3. 验证GPU编译配置生效

  • 执行测试命令确认GPU正常启用:
    ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
    
    输出中如果有GPU显存占用、CUDA相关日志则表示GPU启用正常,如果仍只有CPU相关提示,重新编译Darknet:
    make clean
    make
    
    编译过程中确认有nvcc相关编译日志,无报错即为编译成功。

4. 重新启动训练

所有配置核对完成后重新执行训练命令,正常情况下会先输出数据集加载进度,随后进入迭代训练环节输出损失值。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 07:24:03