YOLOv3验证数据集时出现 段错误 (核心已转储)

 在YOLOv3训练自己的数据集,最后一步验证时,出现段错误(核心已转储),要么就是不报错但是没有标签,被这个问题卡了几天,终于解决了,激动地写下第一篇优快云作为纪念。

首先检查配置文件 my_voc.data,检查路径是否正确,可以把backup文件夹与images,xmls,labels放在同一级,如下。backup存放权重文件,尤其注意。

注意这里并没有使用验证集,因此 valid 的值和train一样。

然后检查yolov3-tiny.cfg的参数设置。因为是yolov3-tiny,只有两个yolo层,在这里两个[yolo]层和上方的[convolutional]层,均按自己的数据集情况修改。

 random=1表示开启多尺度训练。

训练文件cfg和验证文件cfg应保持一致性,即除了batch和subdivisions不一样,其他的参数(如classes,filters,random)均一致。

还有注意是Training(训练)还是Testing(验证)模式。现在修改的训练文件cfg。“#”后面的内容表示被注释掉了。训练的命令如下,注意my_voc.data和yolov3-tiny.conv.15的路径是否符合自己的数据集。

./darknet detector train data/star/my_voc.data data/star/yolov3-tiny.cfg data/star/yolov3-tiny.conv.15

最后检查输入验证的命令是否正确。(本人在这里出错过,写错了yolov3-tiny_final.weights的路径)

./darknet detector test data/star/my_voc.data data/star/yolov3-tiny_test.cfg data/star/backup/yolov3-tiny_final.weights

把这一条指令看成三段,注意三部分直接不要打换行。

./darknet detector test

data/star/my_voc.data data/star/yolov3-tiny_test.cfg

data/star/backup/yolov3-tiny_final.weights

第一部分表示现在是test模式,第二部分和第三部分表示这两个文件相对darknet文件夹的路径。

其实改到这里,本人的问题还是没有解决,仍然出现段错误 (核心已转储)。受yolov3---报"段错误"的可能原因及解决方法 - 码上快乐 (codeprj.com)启发,又重新训练一次权重文件(不要怕麻烦!),终于成功了。

 (忽略为什么要给一个star打上rope标签这件事)

也感谢以下网址的启发。

YOLOV3----训练已放弃(核心已转储)_NcepuKZH的博客-优快云博客

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值