python - Darkflow:为什么我得到有损/不完整的输出图像(我用自己的数据训练)
问题描述
我用自己的数据训练了darkflow yolo,数据集的描述:
数据集大小:3 个图像
类:1
类名:可口可乐
将 yolo.cfg 文件编辑为 yolo_custom.cfg:
类 = 1
过滤器 = 30
训练命令:
python3 flow --model cfg/yolo_custom.cfg --load bin/yolo.weights --batch 1 --epoch 30 --train --annotation train_imgs/Annotations --dataset train_imgs/Images
结果:
Finish 29 epoch(es)
step 88 - loss 161.10618591308594 - moving ave loss 169.31837991674482
step 89 - loss 159.54132080078125 - moving ave loss 168.34067400514846
step 90 - loss 162.15159606933594 - moving ave loss 167.7217662115672
Finish 30 epoch(es)
Checkpoint at step 90
Training finished, exit .
要收集新的权重,运行以下命令将 yolo_custom-30.meta 文件保存到 built_graph/yolo_custom.pb 文件:
python3 flow --model cfg/yolo_custom.cfg --load -1 --savepb
结果是:
使用标准文件 API 检查具有此前缀的文件。
完成于 9.207940340042114s
重建一个恒定版本...
完成
现在,当我使用以下命令测试存储在 sample_img 文件夹中的图像时:
python3 flow --pbLoad built_graph/yolo_custom.pb --metaLoad built_graph/yolo_custom.meta --imgdir sample_img/
包含输出图像的 sample_img/out 文件夹有不完整/有损图像,其中仅包含原始图像的几个像素。并且 json 文件包含很多边界框位置。
这没有意义。我很困惑。请帮助他理解我在哪里遗漏了重点。非常感谢。
解决方案
你的损失太大了。它仍然欠拟合,因此您的输出可能有多个预测。要理解这一点,请检查您的 json 文件,它可能有数千个预测。因此,使用一小部分数据训练模型进行更多时期。
推荐阅读
- swift - 加载 NSCollectionViewItem 时出错
- postgresql - 查询执行缓慢
- node.js - 如何刷新车把视图中的数据?
- php - 从表中选择额外的数据 [Laravel]。传递参数?
- java - Java selenium无头模式下载PDF问题
- c# - 在 .net 核心中使用带有 graphql 的泛型类
- javascript - 根据另一个地图和选定的值填充地图
- twitter-bootstrap-3 - 使用表单输入时引导表列的宽度不同
- angular - chunk.js 未在 Angular 7 中加载
- nfs - NFS V4 READ 文件返回 0 字节