tensorflow-yolov3 icon indicating copy to clipboard operation
tensorflow-yolov3 copied to clipboard

用ckpt去evaluate效果不错,但是用freeze_graph转成pb文件后检测效果就很差

Open DeeeeepL opened this issue 5 years ago • 13 comments

用ckpt去evaluate效果不错,但是用freeze_graph转成pb文件后检测效果就很差。没有改过网络结构,唯一改动的就是根据自己的数据集改一改类别数等等,并且将evaluate.py文件中的trainable置为True。 有人遇到过类似的问题吗?

DeeeeepL avatar Jul 01 '19 08:07 DeeeeepL

trainable置为True就不是测试了,而且batchNorm层的参数也会更新,你转成pb文件后能检测到物体就奇怪了。

YunYang1994 avatar Jul 03 '19 04:07 YunYang1994

trainable置为True就不是测试了,而且batchNorm层的参数也会更新,你转成pb文件后能检测到物体就奇怪了。

如果我把trainable设置为False,则evaluate的结果什么都预测不到,0%MAP。如果把trainable设置为True,MAP能到90%多。是我没有训练好是吗?

DeeeeepL avatar Jul 04 '19 11:07 DeeeeepL

其实在你batchsize很小的时候,测试的时候把training设置为True效果是有可能更好的。

kfcbla avatar Jul 05 '19 08:07 kfcbla

其实在你batchsize很小的时候,测试的时候把training设置为True效果是有可能更好的。

batch设置的是2,电脑显存不大

DeeeeepL avatar Jul 05 '19 08:07 DeeeeepL

trainable置为True就不是测试了,而且batchNorm层的参数也会更新,你转成pb文件后能检测到物体就奇怪了。

如果我把trainable设置为False,则evaluate的结果什么都预测不到,0%MAP。如果把trainable设置为True,MAP能到90%多。是我没有训练好是吗?

描述问题的时候能不能说说什么数据集呢,还有怎么训练的呢?我觉得是你没训练好吧,因为batchNorm是解决过拟合而生,从你描述的问题来看应该是过拟合了。

YunYang1994 avatar Jul 05 '19 17:07 YunYang1994

trainable置为True就不是测试了,而且batchNorm层的参数也会更新,你转成pb文件后能检测到物体就奇怪了。

如果我把trainable设置为False,则evaluate的结果什么都预测不到,0%MAP。如果把trainable设置为True,MAP能到90%多。是我没有训练好是吗?

描述问题的时候能不能说说什么数据集呢,还有怎么训练的呢?我觉得是你没训练好吧,因为batchNorm是解决过拟合而生,从你描述的问题来看应该是过拟合了。

已经解决了,谢谢,貌似是因为欠拟合。我把训练次数弄上去问题就解决了

DeeeeepL avatar Jul 10 '19 08:07 DeeeeepL

trainable置为True就不是测试了,而且batchNorm层的参数也会更新,你转成pb文件后能检测到物体就奇怪了。

如果我把trainable设置为False,则evaluate的结果什么都预测不到,0%MAP。如果把trainable设置为True,MAP能到90%多。是我没有训练好是吗?

描述问题的时候能不能说说什么数据集呢,还有怎么训练的呢?我觉得是你没训练好吧,因为batchNorm是解决过拟合而生,从你描述的问题来看应该是过拟合了。

已经解决了,谢谢,貌似是因为欠拟合。我把训练次数弄上去问题就解决了

你是使用darknet训练的吗?然后转化为tensorflow的时候mAP变小是吗?

lucy3589 avatar Jul 17 '19 12:07 lucy3589

你好,ckpt和pb的效果完全不一样

wanzghen0123 avatar Aug 27 '19 09:08 wanzghen0123

检查一下你的tf版本是否高于1.11

------------------ 原始邮件 ------------------ 发件人: "wanzghen0123"[email protected]; 发送时间: 2019年8月27日(星期二) 下午5:19 收件人: "YunYang1994/tensorflow-yolov3"[email protected]; 抄送: "伯努利不努力!"[email protected];"Author"[email protected]; 主题: Re: [YunYang1994/tensorflow-yolov3] 用ckpt去evaluate效果不错,但是用freeze_graph转成pb文件后检测效果就很差 (#218)

你好,ckpt和pb的效果完全不一样

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.

DeeeeepL avatar Aug 27 '19 09:08 DeeeeepL

1.14.我跟你遇到的问题一样,执行demo.py和evaluate的效果不一样。ckpt转换成pb之后,执行demo的结果完全是错误的

wanzghen0123 avatar Aug 27 '19 09:08 wanzghen0123

video_demo.py中需要将36、62行注释掉,因为utils.image_preporcess()中以及将BGR转RGB了; image_deom.py中需要将30行也做类似的处理,image_data = utils.image_preporcess(np.copy(original_image[:, :, ::-1]), [input_size, input_size])。

csldali avatar Sep 08 '19 13:09 csldali

trainable置为True就不是测试了,而且batchNorm层的参数也会更新,你转成pb文件后能检测到物体就奇怪了。

如果我把trainable设置为False,则evaluate的结果什么都预测不到,0%MAP。如果把trainable设置为True,MAP能到90%多。是我没有训练好是吗?

描述问题的时候能不能说说什么数据集呢,还有怎么训练的呢?我觉得是你没训练好吧,因为batchNorm是解决过拟合而生,从你描述的问题来看应该是过拟合了。

已经解决了,谢谢,貌似是因为欠拟合。我把训练次数弄上去问题就解决了

确实是欠拟合造成的; 以raccoon数据为例,200张图,训练180张,测试20张, 训练20+30个周期,loss下降到0.4,单张图可以测试出结果,但是mAP=0,把trainable=True,mAP=97%,但是看detection结果确实是不好; 训练100+200个周期,loss下降到0.10,把trainable=False,可以测试出mAP=100%;看detection结果确实是好。测试训练图像180张,mAP=100%。

navy63 avatar Oct 15 '19 05:10 navy63

trainable置为True就不是测试了,而且batchNorm层的参数也会更新,你转成pb文件后能检测到物体就奇怪了。

如果我把trainable设置为False,则evaluate的结果什么都预测不到,0%MAP。如果把trainable设置为True,MAP能到90%多。是我没有训练好是吗?

描述问题的时候能不能说说什么数据集呢,还有怎么训练的呢?我觉得是你没训练好吧,因为batchNorm是解决过拟合而生,从你描述的问题来看应该是过拟合了。

已经解决了,谢谢,貌似是因为欠拟合。我把训练次数弄上去问题就解决了

确实是欠拟合造成的; 以raccoon数据为例,200张图,训练180张,测试20张, 训练20+30个周期,loss下降到0.4,单张图可以测试出结果,但是mAP=0,把trainable=True,mAP=97%,但是看detection结果确实是不好; 训练100+200个周期,loss下降到0.10,把trainable=False,可以测试出mAP=100%;看detection结果确实是好。测试训练图像180张,mAP=100%。

您好,我的训练集是2500张,验证集是700张,训练了90个周期,从第60个周期开始,test loss就在6~7左右稳定了,但是测试结果的mAP=0,并且一个目标都检测不到,如果把trainable=True,则mAP=60%,请问这也是因为欠拟合吗?

pumpkin29 avatar Jan 05 '22 14:01 pumpkin29