Intel® Distribution of OpenVINO™ Toolkit
Community assistance about the Intel® Distribution of OpenVINO™ toolkit, OpenCV, and all aspects of computer vision-related on Intel® platforms.
6462 Discussions

[Error 25] Myriad Error: "3x3 Convolution outputChannels Dimension too small.".

idata
Employee
1,260 Views

What does that error indicate?

0 Kudos
12 Replies
idata
Employee
926 Views

Sloved: the "num_output" cannot be less than 8 when using kernel size 3.

 

I wonder why it is set to be perform that? Seems doesn't make sense for many networks with single image as output (num_output = 1 or 3, < 8).

0 Kudos
idata
Employee
926 Views

@incredibleup Thank you for bringing this to our attention. Could you provide a sample of the network or a similar network?

0 Kudos
idata
Employee
926 Views
0 Kudos
idata
Employee
926 Views

@Tome_at_Intel I'm seeing trying to run FaceBoxes on the stick. Would it help to provide you with the prototxt and compiled weights?

0 Kudos
idata
Employee
926 Views

@dspasojevic Yes that would be great if you can provide those.

0 Kudos
idata
Employee
926 Views

@Tome_at_Intel Great!

 

The prototxt is here.

 

Compiled weights are here.

 

Overview of the network design is in this paper.

0 Kudos
idata
Employee
926 Views

@dspasojevic I was able to reproduce your issue. I solved it by including a .conf file with the same name as your network's prototxt file. So if your network prototxt file is named faceboxes.prototxt then you would create an empty file named faceboxes.conf and add in the following lines to your conf file. This conf file chooses a generic spatial convolution function to create a work around because by default the SDK requires the output channels to be >= 8. Make sure that there is an extra line after the last line in the conf file or it may not parse correctly.

 

Inception3/conv/loc1 generic_spatial Inception3/conv/conf1 generic_spatial Inception3/conv/loc2 generic_spatial Inception3/conv/conf2 generic_spatial Inception3/conv/loc3 generic_spatial Inception3/conv/conf3 generic_spatial conv6/loc generic_spatial conv6/conf generic_spatial conv7/loc generic_spatial conv7/conf generic_spatial
0 Kudos
idata
Employee
926 Views

@Tome_at_Intel I came across the same problem (using the prototxt linked above) and added the configuration file as you suggested. Unfortunately, I am still seeing the same error (_[Error 25] Myriad Error: "3x3 Convolution outputChannels Dimension too small."._) when running mvNCCheck or when loading the graph file into a C++ program. Since mvNCCheck and mvNCCompile print lines like _"Layer conv7/conf/perm/flat use the generic optimisations which is: 0x80000000 0 0x80000000"_ I assume the configuration file is parsed correctly and the generic optimizations are applied. I also tried using generic optimizations on all 3x3 convolutions to make sure I did not miss any, but the result is still the same. I am using the latest version of the SDK.

 

Just to make sure I am doing this correctly:

 

     

  • I cloned the FaceBoxes repo (which has the prototxt and caffemodel files)
  •  

  • I added a file named _'faceboxes_deploy.conf'_ containing the configuration.
  •  

  • run _mvNCCheck faceboxes_deploy.prototxt -w FaceBoxes_1024x1024.caffemodel_ (or mvNCCompile)

     

    Is that correct or am I missing something?
  •  

0 Kudos
idata
Employee
926 Views

@PixR2 I haven't tried this with NCSDK v2 yet, but I'll give it a shot and let you know if I get the same results. Thanks.

0 Kudos
idata
Employee
926 Views
I try to compile and profile the face detect model in [https://github.com/sfzhang15/SFD](https://github.com/sfzhang15/SFD "https://github.com/sfzhang15/SFD"). As you have suggested, I added a conf along with the prototxt. When I compile the model, there is no error. While I profile the model, the console report error as follow. 4 0x80000400 Layer fc7_mbox_conf use the generic optimisations which is: 0x80000400 0 0x80000000 Layer fc7_mbox_conf_perm use the generic optimisations which is: 0x80000000 0 0x80000000 Layer fc7_mbox_conf_flat use the generic optimisations which is: 0x80000000 0 0x80000000 Layer fc7_mbox_priorbox use the generic optimisations which is: 0x80000000 Spec opt found opt_conv_generic_spatial 1<< 10 4 0x80000400 Layer conv6_2_mbox_loc use the generic optimisations which is: 0x80000400 0 0x80000000 Layer conv6_2_mbox_loc_perm use the generic optimisations which is: 0x80000000 0 0x80000000 Layer conv6_2_mbox_loc_flat use the generic optimisations which is: 0x80000000 Spec opt found opt_conv_generic_spatial 1<< 10 4 0x80000400 Layer conv6_2_mbox_conf use the generic optimisations which is: 0x80000400 0 0x80000000 Layer conv6_2_mbox_conf_perm use the generic optimisations which is: 0x80000000 0 0x80000000 Layer conv6_2_mbox_conf_flat use the generic optimisations which is: 0x80000000 0 0x80000000 Layer conv6_2_mbox_priorbox use the generic optimisations which is: 0x80000000 Spec opt found opt_conv_generic_spatial 1<< 10 4 0x80000400 Layer conv7_2_mbox_loc use the generic optimisations which is: 0x80000400 0 0x80000000 Layer conv7_2_mbox_loc_perm use the generic optimisations which is: 0x80000000 0 0x80000000 Layer conv7_2_mbox_loc_flat use the generic optimisations which is: 0x80000000 Spec opt found opt_conv_generic_spatial 1<< 10 4 0x80000400 Layer conv7_2_mbox_conf use the generic optimisations which is: 0x80000400 0 0x80000000 Layer conv7_2_mbox_conf_perm use the generic optimisations which is: 0x80000000 0 0x80000000 Layer conv7_2_mbox_conf_flat use the generic optimisations which is: 0x80000000 0 0x80000000 Layer conv7_2_mbox_priorbox use the generic optimisations which is: 0x80000000 0 0x80000000 Layer mbox_conf_reshape use the generic optimisations which is: 0x80000000 0 0x80000000 Layer mbox_conf_softmax use the generic optimisations which is: 0x80000000 0 0x80000000 Layer mbox_conf_flatten use the generic optimisations which is: 0x80000000 0 0x80000000 Layer detection_out use the generic optimisations which is: 0x80000000 Layer conv3_3_norm_mbox_conf forced to im2col_v2, because its output is used in concat /usr/local/bin/ncsdk/Controllers/FileIO.py:52: UserWarning: You are using a large type. Consider reducing your data sizes for best performance "Consider reducing your data sizes for best performance\033[0m") USB: Transferring Data... [Error 25] Myriad Error: "3x3 Convolution outputChannels Dimension too small.". As the error output is too long, I only post the last part of it. Is there any other further suggestion?
0 Kudos
idata
Employee
926 Views

@enjoyXG Can you please send me a link to your Caffe model files? It would save me a lot of time when debugging your network. Thanks.

0 Kudos
idata
Employee
926 Views

@Tome_at_Intel

 

The model is about 80MB, the download link is as follow

 

Google drive

 

BaiduYun

 

You can try both of the above links.

 

Thanks.
0 Kudos
Reply