expectation | 诉求 | 期待する
yolov2-tiny模型移植到ARM Cortex-A7芯片可信度下降20%~30%,不知道这是什么原因,有没有优化方案?希望知道这问题的伙伴不吝赐教,感谢!
model | 模型 | モデル
model.zip (里面包含.param和.bin)
.param如下:
7767517
17 17
Input data 0 1 data -23330=4,3,416,416,3 0=416 1=416 2=3
Convolution 0_25 1 1 data 0_25_bn_leaky -23330=4,3,416,416,16 0=16 1=3 4=1 5=1 6=432 8=2 9=2 -23310=1,1.000000e-01
Pooling 1_33 1 1 0_25_bn_leaky 1_33 -23330=4,3,208,208,16 1=2 2=2 14=1 15=1 5=1
Convolution 2_37 1 1 1_33 2_37_bn_leaky -23330=4,3,208,208,32 0=32 1=3 4=1 5=1 6=4608 8=2 9=2 -23310=1,1.000000e-01
Pooling 3_45 1 1 2_37_bn_leaky 3_45 -23330=4,3,104,104,32 1=2 2=2 14=1 15=1 5=1
Convolution 4_49 1 1 3_45 4_49_bn_leaky -23330=4,3,104,104,64 0=64 1=3 4=1 5=1 6=18432 8=2 9=2 -23310=1,1.000000e-01
Pooling 5_57 1 1 4_49_bn_leaky 5_57 -23330=4,3,52,52,64 1=2 2=2 14=1 15=1 5=1
Convolution 6_61 1 1 5_57 6_61_bn_leaky -23330=4,3,52,52,128 0=128 1=3 4=1 5=1 6=73728 8=2 9=2 -23310=1,1.000000e-01
Pooling 7_69 1 1 6_61_bn_leaky 7_69 -23330=4,3,26,26,128 1=2 2=2 14=1 15=1 5=1
Convolution 8_73 1 1 7_69 8_73_bn_leaky -23330=4,3,26,26,256 0=256 1=3 4=1 5=1 6=294912 8=2 9=2 -23310=1,1.000000e-01
Pooling 9_81 1 1 8_73_bn_leaky 9_81 -23330=4,3,13,13,256 1=2 2=2 14=1 15=1 5=1
Convolution 10_85 1 1 9_81 10_85_bn_leaky -23330=4,3,13,13,512 0=512 1=3 4=1 5=1 6=1179648 8=2 9=2 -23310=1,1.000000e-01
Pooling 11_93 1 1 10_85_bn_leaky 11_93 -23330=4,3,13,13,512 1=2 14=1 15=1 5=1
Convolution 12_97 1 1 11_93 12_97_bn_leaky -23330=4,3,13,13,1024 0=1024 1=3 4=1 5=1 6=4718592 8=102 9=2 -23310=1,1.000000e-01
Convolution 13_107 1 1 12_97_bn_leaky 13_107_bn_leaky -23330=4,3,13,13,512 0=512 1=3 4=1 5=1 6=4718592 8=102 9=2 -23310=1,1.000000e-01
Convolution 14_115 1 1 13_107_bn_leaky 14_115 -23330=4,3,13,13,35 0=35 1=1 5=1 6=17920 8=2
YoloDetectionOutput detection_out 1 1 14_115 detection_out -23330=4,2,6,1,1 0=2 2=1.000000e-01 -23304=10,2.330000e+00,2.790000e+00,3.410000e+00,3.980000e+00,4.130000e+00,5.310000e+00,5.210000e+00,6.020000e+00,6.380000e+00,8.630000e+00
detail | 详细描述 | 詳細な説明
我在电脑上(x64)用darknet框架训练自己的数据集,得到yolov2-tiny模型,该模型经过以下步骤处理:
- ncnn tool:darknet2ncnn,转换darknent模型为ncnn模型
- ncnn tool:ncnnoptimize,优化模型,指令最后参数给0
- ncnn tool:ncnn2table,生成table文件,指令参数:mean=[0,0,0] norm=[0.00392,0.00392,0.00392] shape=[416,416,3] pixel=RGB thread=8 method=kl
- ncnn tool:ncnn2int8,量化模型,得到yolov2-tiny-int8.param和yolov2-tiny-int8.bin
处理过后,在电脑上使用yolo2.cpp例程加载量化后的模型测试,结果和darknet的测试结果几乎一致,这说明量化后的模型可以在x86平台正常运行,但将该模型移植到imx6ull(Cortex-A7)上测试相同图片时,发现目标可信度下降了20%~30%,不知道是什么原因。
1条答案
按热度按时间mkshixfv1#
尝试用最新的 ncnn 和量化工具实验下,修复了 x86 armv7 round 的差异