转换自己的YOLOV3模型。。。。。。。。。。。。。

@hyf820812029 模型的训练环境,如果和转化环境差别比较大,就会出这种问题

我的模型训练是直接用的darknet的代码和自己做的数据集,整个训练过程我都没用过TensorFlow,也就是这个教程,零基础入门darknet-YOLO3或YOLOv3-Tiny模型训练 。如果不是转换模型需要用到,我都没用过TensorFlow

是不是我的虚拟机,用不了TensorFlow-GPU版本导致?应该用TensorFlow-CPU版本?

@hyf820812029

这是我的环境你试试,和虚拟机和GPU没有关系

我是3.6的python和2.6的TF,你试试看

你的环境比requirements要求的少了一些

@hyf820812029 我只测试特定模型,这些库是为所有模型服务的,包括一些非转换的功能的依赖

使用你的环境测试下来也是一样,总是有这个TensorFlow错误

第一步生成.data和.json的过程,也有这个问题,但是会生成这两个文件,第二步生成不了quantize文件,中间的错误跟我原来发的错误一样

@hyf820812029 那就是你的模型问题了,你是用的原始模型么,我这边特意搭了环境测试了yolov3的官方文件

我现在试试原始的yolov3官方的,只需要把.cfg和.weights文件换成官方的,然后bash 0,bash1,bash 2,是吗?

demo/data里面的图片分辨率应该是多少?这个分辨率是由什么决定的呢?而且这个图片会在量化过程中用到,是不是我图片分辨率的分辨率错了,量化的文件也就生成不出来了

@hyf820812029 和你训练的size是一样的,你查看你自己的cfg文件。我不知道你设置的是多少。


你那边转换,是 I start tensor provider 然后就结束了吗?

@hyf820812029 我这边转换是没有问题的,三个脚本都转换成功了。

I Clean.
D Optimizing network with align_quantize, broadcast_quantize, qnt_adjust_coef, qnt_adjust_param
D Align @add_shortcut_61_148:out0 scale to [0.08629427]
D Align @concat_86_205:out0 scale to [0.08629427]
D Align @upsampling_85_204:out0 scale to [0.08629427]
D Align @add_shortcut_36_89:out0 scale to [0.09367254]
D Align @upsampling_97_230:out0 scale to [0.09367254]
D Align @concat_98_231:out0 scale to [0.09367254]
D Quantize tensor(@output_82_199:out0) with tensor(@convolution_81_198:out0)
D Quantize tensor(@output_94_225:out0) with tensor(@convolution_93_224:out0)
D Quantize tensor(@output_106_251:out0) with tensor(@convolution_105_250:out0)
I Dump net quantize tensor table to yolov3.quantize
I [TRAINER]Quantization complete.
[TRAINER]Quantization complete.
I Save net to yolov3.data
I Clean.

你使用官方的模型文件了么,还是你自己训练的

官方的文件.cfg和.weights都替换了,但是data里的图片没替换

我使用工作站就成功转换了,我自己的虚拟机还是不行。然后测试识别,感觉我自己的模型识别精度不是很高,没有你们提供的官方coco数据集的精度高?比如侧面或者远处的时候,不容易识别到。

@hyf820812029 你是自己训练的模型么,这个可能是后处理的算法上有区别的,其实我们提供的demo,后处理也处理得不是很好,建议采用U8去转换,我们的demo是用的int8

代码用的darknet开源的代码,数据集用的自己采集的,我现在如果想要提高精度,也就只能两种方法是吗?要不就使用U8,要不就使用i8,没有其它的办法了是吗?因为我的模型不止在这个板子上跑,也在其它的地方跑,但是相对来说,这个板子上的精度没其它地方高

@hyf820812029 你可以查看文档,文档里面有说明提高精度的一些方法。另外一个就是,npu上面的精度确实是没有cpu和gpu或者fpga高的。要看你和什么做比较了。