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.txt
和test.txt
文件造成的。请检查这两个文件
【讨论】:
以上是关于Yolo 没有开始训练的主要内容,如果未能解决你的问题,请参考以下文章
[YOLO专题-24]:YOLO V5 - ultralytics代码解析-train.py训练代码的详细执行流程
Tensorflow 在训练 yolo 时报告了 CUDA_ERROR_ILLEGAL_ADDRESS 错误
YOLO v3 包括Tiny-Yolo 训练自己的数据集(Pytorch版本)以及模型评价指标的介绍
Pytorch深度学习50篇·······第五篇:YOLO-----训练篇