Yolo 没有开始训练

Posted

技术标签:

【中文标题】Yolo 没有开始训练【英文标题】:Yolo not starting to train 【发布时间】:2020-09-29 10:31:37 【问题描述】:

我正在尝试在自定义数据集上训练 Yolo,一切似乎都正常工作,但它只是没有训练。

我按照https://github.com/AlexeyAB/darknet 上的教程学习了两次,但得到了相同的结果

./darknet detector train data/obj.data cfg/yolo-obj.cfg yolov4.conv.137

[yolo] params: iou loss: ciou (4), iou_norm: 0.07, cls_norm: 1.00, scale_x_y: 1.05
nms_kind: greedynms (1), beta = 0.600000 
Total BFLOPS 59.563 
avg_outputs = 489778 
Loading weights from yolov4.conv.137...
 seen 64, trained: 0 K-images (0 Kilo-batches_64) 
Done! Loaded 137 layers from weights-file 
Learning Rate: 0.001, Momentum: 0.949, Decay: 0.0005
Resizing, random_coef = 1.40 

 608 x 608 
 Create 64 permanent cpu-threads 

 mosaic=1 - compile Darknet with OpenCV for using mosaic=1 

我也尝试过不使用预先训练的权重,但这也不会开始训练过程

./darknet detector train data/obj.data cfg/yolo-obj.cfg
[yolo] params: iou loss: ciou (4), iou_norm: 0.07, cls_norm: 1.00, scale_x_y: 1.05
nms_kind: greedynms (1), beta = 0.600000 
Total BFLOPS 59.563 
avg_outputs = 489778 
Learning Rate: 0.001, Momentum: 0.949, Decay: 0.0005
Resizing, random_coef = 1.40 

 608 x 608 
 Create 64 permanent cpu-threads 

 mosaic=1 - compile Darknet with OpenCV for using mosaic=1 

我错过了什么?

【问题讨论】:

你运行make 编译暗网了吗? 打开yolo配置文件(.cfg),搜索cutmix,会看到mosaic=1这一行,将1改为0,再次训练。 【参考方案1】:

如果要使用OpenCV,需要重新编译Darknet,但先将make文件改成如下:

 OPENCV=1

如果您不需要 OpenCV,请按照 @TaQuangTu 的建议进行操作。当您修复此行时,只需再次运行 build.sh 脚本,它应该可以正常工作。

如果您打算使用 GPU 进行训练,我还建议您更改以下几行

GPU=1
CUDNN=1
CUDNN_HALF=1 

【讨论】:

我确认,没有 OpenCV,它不会训练任何东西。我刚刚遵循了 Rômulo 的建议,启用了 OpenCV,它确实对我有用。【参考方案2】:

我的朋友,我刚刚解决了这个问题。我想我在这里找到了原因。如果您的 train/test.txt 为空,这就是原因。你打开“creating-train-and-test-txt-files.py”并编辑它。找到关键字是jpeg的地方。我们在这里只能找到 2 个 jpeg 单词,您将它们编辑为“jpg”并在您的 Google Drive 中替换它。最后,重新启动协作工作。而且你的训练不会因为“608 x 608 创建 64 个永久 CPU 线程“。

来自中国的良好祝愿。

【讨论】:

【参考方案3】:

你是如何安装 OpenCV 的?

对于一个简单的修复,你可以试试这个sudo apt install libopencv-dev python3-opencv

还要确保你有 cmake,

sudo apt install cmake

这应该在您的系统中安装 opencv 3.2 和 cmake 3.10。然后尝试运行暗网。

最后,修改 Makefile,

OPENCV=1

【讨论】:

【参考方案4】:

上述错误主要是由于空train.txttest.txt文件造成的。请检查这两个文件

【讨论】:

以上是关于Yolo 没有开始训练的主要内容,如果未能解决你的问题,请参考以下文章

[YOLO专题-24]:YOLO V5 - ultralytics代码解析-train.py训练代码的详细执行流程

Tensorflow 在训练 yolo 时报告了 CUDA_ERROR_ILLEGAL_ADDRESS 错误

YOLO v3 包括Tiny-Yolo 训练自己的数据集(Pytorch版本)以及模型评价指标的介绍

Pytorch深度学习50篇·······第五篇:YOLO-----训练篇

YOLO-Darknet实战:自建数据集训练YOLOv4模型

YOLO-Darknet实战:自建数据集训练YOLOv4模型