JesseYule/ObjectDetection-YOLOv3

关于这份代码,有没有darknet转ckpt的模型转换文件呢?

Opened this issue · 5 comments

image

改了另一份代码darknet转ckpt的模型转换文件,训练在第一个step就出错了,程序中断。我猜测还是restore的ckpt模型有问题。

image

库主能帮忙看看什么问题吗?先谢过了!

不是很理解您的意思,你是使用了预训练好的weights吗,你这样能够训练一轮也能evaluate,在读取预训练文件时应该没出问题,你指的程序中断是什么意思,具体我需要看一下报错信息才能做判断,是不是没有改过训练的step所以就训练了一轮就停了?

感谢库主,训练一轮就停止的情况确实是因为我忘记改STEPS了。。不过现在训练遇到了新的问题,如下图:
image

损失很大,eval的recall和precision都基本为0,请问这是什么原因导致的呢?我的参数如图所示:
image

另外想要使用预训练好的weights进行微调,上面出错的原因可能是因为我用了其他yolov3-tf代码里的模型转换文件(.weights转.ckpt),库主能提供一下预训练好的文件吗?万分感谢~

你才训练了10个steps,怎么可能就出效果,我是训练了两三千个steps才出效果的,我训练的模型识别的对象和你的又不一样,给你也没用的

你才训练了10个steps,怎么可能就出效果,我是训练了两三千个steps才出效果的,我训练的模型识别的对象和你的又不一样,给你也没用的

跑了90多个step,eval的结果基本都为0,并且在第76个step时损失变为NAN了(learning rate为0.0001)。另外库主在训练自己的网络时是train from scratch吗?我指的预训练权重是在COCO或者ImageNet上训练的权重文件。

试过整个网络全部从头训练,也试过加载darknet的预训练权重然后做fine tuning,从结果来说都是没问题的,只是从头训练我要训练到四五千个step才出效果(eval的recall、precision开始上升,之前都是0),fine tuning一两千左右就开始有效果了,你遇到NAN应该是梯度爆炸的问题,可以观察一下训练过程中损失的变化,可以尝试进一步降低学习率,YOLOv3的参数量比较大,训练起来不是几百个step就能出效果的,如果你需要预训练权重文件,我在readme里面已经给出了weights的下载链接,不过我觉得这个应该影响不大。