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.
6404 Discussions

[caffe] Compile error when try to concat result of concat

idata
Employee
1,045 Views

Simple example,

 

but compile error when try to concat result of concat

 

mvNCCompile -s 12 opir5.prototxt -in m1

 

Traceback (most recent call last): File "/usr/local/bin/mvNCCompile", line 118, in <module> create_graph(args.network, args.inputnode, args.outputnode, args.outfile, args.nshaves, args.inputsize, args.weights) File "/usr/local/bin/mvNCCompile", line 101, in create_graph net = parse_caffe(args, myriad_config) File "/usr/local/bin/ncsdk/Controllers/CaffeParser.py", line 503, in parse_caffe node.concat_axis = layer.concat_param.axis AttributeError: 'list' object has no attribute 'concat_axis'

 

opir5.prototxt:

 

layer { name: "image" type: "Input" top: "image" input_param { shape { dim: 1 dim: 3 dim: 432 dim: 368 } } } layer { name: "m1" type: "Convolution" bottom: "image" top: "m1" convolution_param { num_output: 24 bias_term: false kernel_size: 3 group: 1 stride: 2 pad_h: 1 pad_w: 1 } } layer { name: "m2" type: "Convolution" bottom: "image" top: "m2" convolution_param { num_output: 24 bias_term: false kernel_size: 3 group: 1 stride: 2 pad_h: 1 pad_w: 1 } } layer { name: "m3" type: "Convolution" bottom: "image" top: "m3" convolution_param { num_output: 24 bias_term: false kernel_size: 3 group: 1 stride: 2 pad_h: 1 pad_w: 1 } } layer { name: "feat_concat1" type: "Concat" bottom: "m1" bottom: "m2" bottom: "m3" top: "feat_concat1" concat_param { axis: 1 } } layer { name: "m4" type: "Convolution" bottom: "image" top: "m4" convolution_param { num_output: 24 bias_term: false kernel_size: 3 group: 1 stride: 2 pad_h: 1 pad_w: 1 } } layer { name: "feat_concat2" type: "Concat" bottom: "m4" bottom: "feat_concat1" top: "feat_concat2" concat_param { axis: 1 } }
0 Kudos
6 Replies
idata
Employee
745 Views
0 Kudos
idata
Employee
745 Views

@jokilokis Did you solved the problem?

0 Kudos
idata
Employee
745 Views

@Tome_at_Intel I have encountered this problem too. NCSDK version is 1.12.00.01.

 

Is this bug fixed?

 

If not, are there any temporary solutions which DO NOT require modifications of prototxt file?

 

I have checked python codes under "/usr/local/bin/ncsdk", but I couldn't find a solution.

 

Can you help me with this problem?

 

Thanks in advance.

0 Kudos
idata
Employee
745 Views

@prophett0527 You are seeing the same issue as the jokilokis? The issue with concat being the last layer is still being worked on. The current work around is to modify the prototxt file as you mentioned. As for concat of a specific axis of two inputs (see caffe example below), the current NCSDK and verion 1.12 doesn't have support for this yet.

 

layer { name: "feat_concat2" type: "Concat" bottom: "m4" bottom: "feat_concat1" top: "feat_concat2" concat_param { axis: 1 } }
0 Kudos
idata
Employee
745 Views

@Tome_at_Intel Thanks for the quick response.

 

My problem is the same as @jokilokis .

 

When concat the result of another concat layer, mvNCCompile reports errors "AttributeError: 'list' object has no attribute 'concat_axis'".

 

If currently NCSDK does not support this type of layers, the only solution is to add a proxy layer between the two concats?

 

Ex:

 

problem : "feat_concat1" => "feat_concat2"

 

solution : "feat_concat1" => "proxy layer(max pooling with k=1)" => "feat_concat2"

 

Is this solution going to fix the problem?

 

BTW, the PeleeNet, which is published this year, has this type of layers (concat the result of another concat)

 

layer { name: "stage1_2/concat" type: "Concat" bottom: "stage1_1/concat" bottom: "stage1_2/branch1b" bottom: "stage1_2/branch2c" top: "stage1_2/concat" concat_param { axis: 1 } }
0 Kudos
idata
Employee
745 Views

@prophett0527 I haven't tried that solution yet so I can't say. The concat of a specific axis isn't supported yet, but full concat of a layer is supported (see example below).

 

layer { name: "inception_3a/output" type: "Concat" bottom: "inception_3a/1x1" bottom: "inception_3a/3x3" bottom: "inception_3a/5x5" bottom: "inception_3a/pool_proj" top: "inception_3a/output" }
0 Kudos
Reply