Forums - Reason of convolution layer limitations

4 posts / 0 new
Last post
Reason of convolution layer limitations
lunarcake
Join Date: 26 Jul 17
Posts: 10
Posted: Mon, 2017-10-16 19:22
Hi
 
I got such bellow message when I converted mobilenet caffemodel(https://github.com/shicai/MobileNet-Caffe) to dlc.
 
snpe_caffe_to_dlc.py:1474: RuntimeWarning: error_code=803; error_message=Layer parameters combination is invalid in GPU Layer conv2_1/dw: input depth must be divisible by 4 * number of groups; error_component=GPU Runtime; line_no=53; thread_id=140457539827520
 
I guess error came from layer limitations which mentioned in reference guide as follow.
The converted dlc model only working on CPU excluding GPU, DSP.
 
When the number of groups is greater than 1, for both CPU and the GPU runtime, the number of output channels (i.e. number of filters) must be a multiple of 16. The number of input and output channels must be a multiple of the number of groups.
 
However, the contents of error message (input depth must be divisible by 4 * number of groups) was a little different with layer limitataions.
I would like to know correct layer limitations with reason of such limitations since for using separable convolution.
 
Thank in advance.
  • Up0
  • Down0
sipi_s
Join Date: 2 Oct 17
Posts: 2
Posted: Fri, 2017-10-20 03:14

I did get the same error message with an older SNPE SDK version when running MobileNet-Caffe on an Android GPU (Snapdragon 835). The snpe-caffe-to-dlc conversion itself worked fine even with the old version.

I updated the SDK to latest version (from 1.2.2 to 1.6.0) and then it worked fine. The limitations page in reference guide still has the same comments on GPU runtime, and snpe-dlc-info gives exactly same outputs for both DLCs converted with old and new SDK, so the runtime library must have been updated.

  • Up0
  • Down0
Geoffrey Wenger
Join Date: 12 Mar 15
Location: San Diego
Posts: 1
Posted: Thu, 2017-11-02 22:01

Hi lunarcake,

Thanks for your interest in Snapdragon NPE.

As sipi_s notes, I believe the GPU runtime should work for this network if you upgrade to version 1.6.0. I tested it and with 1.6.0 it both converted and ran without errors with the GPU runtime.

The divisibility constraint on the number of channels when groups are involved is a little complex, but as of 1.6.0 it should be possible for # groups, # input channels, and # output channels to all be equal (as it is for the use of groups in this model).

 

  • Up0
  • Down0
lunarcake
Join Date: 26 Jul 17
Posts: 10
Posted: Mon, 2017-12-18 00:13

Thank you, sipi_s, Wenger.

I found that it worked well after updating SNPE v1.6.0.

Additionally, I found description about MobileNet limitation on DSP of SNPE v1.8.0.

Thanks again to all.

  • Up0
  • Down0
or Register

Opinions expressed in the content posted here are the personal opinions of the original authors, and do not necessarily reflect those of Qualcomm Incorporated or its subsidiaries (“Qualcomm”). The content is provided for informational purposes only and is not meant to be an endorsement or representation by Qualcomm or any other party. This site may also provide links or references to non-Qualcomm sites and resources. Qualcomm makes no representations, warranties, or other commitments whatsoever about any non-Qualcomm sites or third-party resources that may be referenced, accessible from, or linked to this site.