PaddlePaddle / Anakin

High performance Cross-platform Inference-engine, you could run Anakin on x86-cpu,arm, nv-gpu, amd-gpu,bitmain and cambricon devices.
https://anakin.baidu.com/
Apache License 2.0
531 stars 135 forks source link

x86调用转换的MobileNet-SSD的caffemodel模型,调用net_executer时concat层出错。在caffe SSD里面mbox_priorbox的concat层的输入是3维的,在AK里面输入是4维了,concat的参数axis: 2就不对了。这种问题是模型转换有问题吗? #475

Open whongjob opened 5 years ago

whongjob commented 5 years ago

我用x86调用转换后的MobileNet-SSD模型,在concat层出错。是模型转换哪里出错了吗? 错误信息: WAN| 16:44:19.00789| 0.078s| AC143780| x86_device.cpp:27] X86 get_info is not implemented WAN| 16:44:19.00789| 0.078s| AC143780| net.cpp:667] Current used device id : 0 WAN| 16:44:19.00790| 0.079s| AC143780| input.cpp:16] Parsing Input op parameter. 0| 16:44:19.00790| 0.079s| AC143780| input.cpp:19] |-- shape [0]: 1 0| 16:44:19.00790| 0.079s| AC143780| input.cpp:19] |-- shape [1]: 3 0| 16:44:19.00790| 0.079s| AC143780| input.cpp:19] |-- shape [2]: 300 0| 16:44:19.00790| 0.079s| AC143780| input.cpp:19] |-- shape [3]: 300 WAN| 16:44:19.00791| 0.080s| AC143780| permute.cpp:20] !!!!!!!! Parsing Permute op parameter. 0| 16:44:19.00791| 0.080s| AC143780| permute.cpp:24] |-- dims [0]: 0 0| 16:44:19.00791| 0.080s| AC143780| permute.cpp:24] |-- dims [1]: 2 0| 16:44:19.00791| 0.080s| AC143780| permute.cpp:24] |-- dims [2]: 3 0| 16:44:19.00791| 0.080s| AC143780| permute.cpp:24] |-- dims [3]: 1 WAN| 16:44:19.00791| 0.080s| AC143780| permute.cpp:20] !!!!!!!! Parsing Permute op parameter. 0| 16:44:19.00791| 0.080s| AC143780| permute.cpp:24] |-- dims [0]: 0 0| 16:44:19.00791| 0.080s| AC143780| permute.cpp:24] |-- dims [1]: 2 0| 16:44:19.00791| 0.080s| AC143780| permute.cpp:24] |-- dims [2]: 3 0| 16:44:19.00791| 0.080s| AC143780| permute.cpp:24] |-- dims [3]: 1 WAN| 16:44:19.00791| 0.080s| AC143780| permute.cpp:20] !!!!!!!! Parsing Permute op parameter. 0| 16:44:19.00791| 0.080s| AC143780| permute.cpp:24] |-- dims [0]: 0 0| 16:44:19.00791| 0.080s| AC143780| permute.cpp:24] |-- dims [1]: 2 0| 16:44:19.00791| 0.080s| AC143780| permute.cpp:24] |-- dims [2]: 3 0| 16:44:19.00791| 0.080s| AC143780| permute.cpp:24] |-- dims [3]: 1 WAN| 16:44:19.00791| 0.080s| AC143780| permute.cpp:20] !!!!!!!! Parsing Permute op parameter. 0| 16:44:19.00791| 0.080s| AC143780| permute.cpp:24] |-- dims [0]: 0 0| 16:44:19.00791| 0.080s| AC143780| permute.cpp:24] |-- dims [1]: 2 0| 16:44:19.00791| 0.080s| AC143780| permute.cpp:24] |-- dims [2]: 3 0| 16:44:19.00791| 0.080s| AC143780| permute.cpp:24] |-- dims [3]: 1 WAN| 16:44:19.00791| 0.080s| AC143780| permute.cpp:20] !!!!!!!! Parsing Permute op parameter. 0| 16:44:19.00791| 0.080s| AC143780| permute.cpp:24] |-- dims [0]: 0 0| 16:44:19.00791| 0.080s| AC143780| permute.cpp:24] |-- dims [1]: 2 0| 16:44:19.00791| 0.080s| AC143780| permute.cpp:24] |-- dims [2]: 3 0| 16:44:19.00791| 0.080s| AC143780| permute.cpp:24] |-- dims [3]: 1 WAN| 16:44:19.00791| 0.080s| AC143780| permute.cpp:20] !!!!!!!! Parsing Permute op parameter. 0| 16:44:19.00791| 0.080s| AC143780| permute.cpp:24] |-- dims [0]: 0 0| 16:44:19.00791| 0.080s| AC143780| permute.cpp:24] |-- dims [1]: 2 0| 16:44:19.00791| 0.080s| AC143780| permute.cpp:24] |-- dims [2]: 3 0| 16:44:19.00791| 0.080s| AC143780| permute.cpp:24] |-- dims [3]: 1 WAN| 16:44:19.00791| 0.080s| AC143780| permute.cpp:20] !!!!!!!! Parsing Permute op parameter. 0| 16:44:19.00791| 0.080s| AC143780| permute.cpp:24] |-- dims [0]: 0 0| 16:44:19.00791| 0.080s| AC143780| permute.cpp:24] |-- dims [1]: 2 0| 16:44:19.00791| 0.080s| AC143780| permute.cpp:24] |-- dims [2]: 3 0| 16:44:19.00791| 0.080s| AC143780| permute.cpp:24] |-- dims [3]: 1 WAN| 16:44:19.00791| 0.080s| AC143780| permute.cpp:20] !!!!!!!! Parsing Permute op parameter. 0| 16:44:19.00792| 0.080s| AC143780| permute.cpp:24] |-- dims [0]: 0 0| 16:44:19.00792| 0.080s| AC143780| permute.cpp:24] |-- dims [1]: 2 0| 16:44:19.00792| 0.080s| AC143780| permute.cpp:24] |-- dims [2]: 3 0| 16:44:19.00792| 0.080s| AC143780| permute.cpp:24] |-- dims [3]: 1 WAN| 16:44:19.00792| 0.081s| AC143780| permute.cpp:20] !!!!!!!! Parsing Permute op parameter. 0| 16:44:19.00792| 0.081s| AC143780| permute.cpp:24] |-- dims [0]: 0 0| 16:44:19.00792| 0.081s| AC143780| permute.cpp:24] |-- dims [1]: 2 0| 16:44:19.00792| 0.081s| AC143780| permute.cpp:24] |-- dims [2]: 3 0| 16:44:19.00792| 0.081s| AC143780| permute.cpp:24] |-- dims [3]: 1 WAN| 16:44:19.00792| 0.081s| AC143780| permute.cpp:20] !!!!!!!! Parsing Permute op parameter. 0| 16:44:19.00792| 0.081s| AC143780| permute.cpp:24] |-- dims [0]: 0 0| 16:44:19.00792| 0.081s| AC143780| permute.cpp:24] |-- dims [1]: 2 0| 16:44:19.00792| 0.081s| AC143780| permute.cpp:24] |-- dims [2]: 3 0| 16:44:19.00792| 0.081s| AC143780| permute.cpp:24] |-- dims [3]: 1 WAN| 16:44:19.00792| 0.081s| AC143780| permute.cpp:20] !!!!!!!! Parsing Permute op parameter. 0| 16:44:19.00792| 0.081s| AC143780| permute.cpp:24] |-- dims [0]: 0 0| 16:44:19.00792| 0.081s| AC143780| permute.cpp:24] |-- dims [1]: 2 0| 16:44:19.00792| 0.081s| AC143780| permute.cpp:24] |-- dims [2]: 3 0| 16:44:19.00792| 0.081s| AC143780| permute.cpp:24] |-- dims [3]: 1 WAN| 16:44:19.00792| 0.081s| AC143780| permute.cpp:20] !!!!!!!! Parsing Permute op parameter. 0| 16:44:19.00792| 0.081s| AC143780| permute.cpp:24] |-- dims [0]: 0 0| 16:44:19.00792| 0.081s| AC143780| permute.cpp:24] |-- dims [1]: 2 0| 16:44:19.00792| 0.081s| AC143780| permute.cpp:24] |-- dims [2]: 3 0| 16:44:19.00792| 0.081s| AC143780| permute.cpp:24] |-- dims [3]: 1 FTL| 16:44:19.00799| 0.088s| AC143780| concat.h:101] Check failed:shape_out[j] == sh[j] (4332 == 2400) All inputs must have the same shape, except at concat_axis. Check failed:shape_out[j] == sh[j] (4332 == 2400) fatal error stack trace: :

Hub-er commented 5 years ago

打印concat层的shape信息。

whongjob commented 5 years ago

出错的层: layer { name: "mbox_priorbox" type: "Concat" bottom: "conv4_3_norm_mbox_priorbox" bottom: "fc7_mbox_priorbox" bottom: "conv6_2_mbox_priorbox" bottom: "conv7_2_mbox_priorbox" bottom: "conv8_2_mbox_priorbox" bottom: "conv9_2_mbox_priorbox" top: "mbox_priorbox" concat_param { axis: 2 } } 在AK里concat层的shape打印信息: input_size: 6 param.axis: 2 input 0 dims(): 4 dim[0]:1 dim[1]:1 dim[2]:2 dim[3]:4332 input 1 dims(): 4 dim[0]:1 dim[1]:1 dim[2]:2 dim[3]:2400 input 2 dims(): 4 dim[0]:1 dim[1]:1 dim[2]:2 dim[3]:600 input 3 dims(): 4 dim[0]:1 dim[1]:1 dim[2]:2 dim[3]:216 input 4 dims(): 4 dim[0]:1 dim[1]:1 dim[2]:2 dim[3]:96 input 5 dims(): 4 dim[0]:1 dim[1]:1 dim[2]:2 dim[3]:24 我感觉是caffe SSD里面输入是3维的,concat参数是2,到了AK里面输入变成4维了,参数还是2就不对了。这种情况是模型转换不对吗? 请求帮助,感谢!

MyPandaShaoxiang commented 5 years ago

是的,请用最新的master分支进行重新转换