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.

Operations not found

idata
Employee
798 Views

Hi,

 

I want to run a custom model implemented in Tensorflow on Cifar 10 dataset. However when I run this command : mvNCCompile -s 8 'frozen_graph.pb' -in 'input' -on 'CifarNet/Predictions/Reshape_1' I have this error :

 

Traceback (most recent call last): File "/usr/local/bin/mvNCProfile", line 122, in <module> args = parse_args() File "/usr/local/bin/mvNCProfile", line 105, in profile_net net = parse_tensor(args, myriad_config, file_gen=True) File "/usr/local/bin/ncsdk/Controllers/TensorFlowParser.py", line 520, in parse_tensor network.attach(prev_node) File "/usr/local/bin/ncsdk/Models/Network.py", line 80, in attach print('parent : ',parent) File "/usr/local/bin/ncsdk/Models/NetworkStage.py", line 698, in attach_several self.top.append(l.unprocessed_name) AttributeError: 'int' object has no attribute 'unprocessed_name' Makefile:34: recipe for target 'profile' failed make: [profile] Error 1 (ignored)

 

You can find the files here : https://drive.google.com/open?id=1ngOx8esOHIXJBZ744EYKlpCm7eK0TQNd

 

When digging into the code, I found that it was because somehow the operations ['CifarNet/Normal_cell_1/add', 'CifarNet/Normal_cell_1/add_1', 'CifarNet/Normal_cell_1/add_2', 'CifarNet/Normal_cell_1/add_3'] were not found. However 'CifarNet/Normal_cell_1/add_4' is found. And these operations were found for the Normal_cell_0, I really don't know why.

 

Thank you !

0 Kudos
8 Replies
idata
Employee
456 Views

@AnnaBar I'm looking at this issue at the moment.

0 Kudos
idata
Employee
456 Views

Hi @Tome_at_Intel ,

 

Any update concerning this issue?
0 Kudos
idata
Employee
456 Views

@AnnaBar I was able to reproduce your issue and I have a few questions. For add_1 and add_3 are you adding constants? We have a known issue with our add implementation only adding two tensors at the moment.

0 Kudos
idata
Employee
456 Views

@Tome_at_Intel,

 

No I'm not adding constants with the add_1 and add_3 operations. I am adding two tensors with shape ?x32x32x24.

 

How should I modify my model to avoid this issue ?
0 Kudos
idata
Employee
456 Views

@Annabar How did you find out that ['CifarNet/Normal_cell_1/add', 'CifarNet/Normal_cell_1/add_1', 'CifarNet/Normal_cell_1/add_2', 'CifarNet/Normal_cell_1/add_3'] were not found?

 

It seems like the network is crashing after parsing the operation and during creation of the layers for the graph file.

 

It always crashes on this node: CifarNet/Normal_cell_0/Normal_cell_0_unused_concat/axis and during CifarNet/Reduction_cell_2/block_4_op2/identity/Conv2D for me. If I use the node right before that one CifarNet/Normal_cell_0/add_4, I get no issues.

 

It seems those add operations that you listed come right before the conv2D layer that fails:

 

Add 686 ConcatV2 CifarNet/Normal_cell_1/Normal_cell_1_unused_concat IN: CifarNet/Normal_cell_1/add:0 IN: CifarNet/Normal_cell_1/add_1:0 IN: CifarNet/Normal_cell_1/add_2:0 IN: CifarNet/Normal_cell_1/add_3:0 IN: CifarNet/Normal_cell_1/add_4:0 IN: CifarNet/Normal_cell_1/Normal_cell_1_unused_concat/axis:0 OUT: CifarNet/Normal_cell_1/Normal_cell_1_unused_concat:0 Concat 687 Conv2D CifarNet/Reduction_cell_2/block_4_op2/identity/Conv2D IN: CifarNet/Normal_cell_1/Normal_cell_1_unused_concat:0 IN: CifarNet/Reduction_cell_2/block_4_op2/identity/weights/read:0 OUT: CifarNet/Reduction_cell_2/block_4_op2/identity/Conv2D:0 Conv2D [Dimension(1), 16, 16, Dimension(24)] Traceback (most recent call last): File "/usr/local/bin/mvNCCheck", line 199, in <module> quit_code = check_net(args.network, args.image, args.inputnode, args.outputnode, args.nshaves, args.inputsize, args.weights, args) File "/usr/local/bin/mvNCCheck", line 166, in check_net load_ret = load_network(args, parser, myriad_config) File "/usr/local/bin/ncsdk/Controllers/Scheduler.py", line 82, in load_network parse_ret = parse_tensor(arguments, myriad_conf) File "/usr/local/bin/ncsdk/Controllers/TensorFlowParser.py", line 452, in parse_tensor network.attach(prev_node) File "/usr/local/bin/ncsdk/Models/Network.py", line 87, in attach stage.attach_several(appropriate_nodes) File "/usr/local/bin/ncsdk/Models/NetworkStage.py", line 911, in attach_several self.top.append(l.unprocessed_name) AttributeError: 'int' object has no attribute 'unprocessed_name'
0 Kudos
idata
Employee
456 Views

Hi @Tome_at_Intel,

 

Actually, I am not sure that these operations are not found. I thought it was the problem because the link between these add operations and the Conv2D layer is missing.

 

I don't really understand why this layer Conv2D is failing while the previous Conv2D are accepted.
0 Kudos
idata
Employee
456 Views

Hi,

 

Little update, I succeeded to compile my model. I just changed a little thing in the NetworkStage.py file on the attach function.

 

. if self in self.network.head: stage.network.storageOrder = stage.storageOrder self.network.head.remove(self) self.network.head.append(stage) else: for parents in self.network.search_several(self.top): newtail = [] for p in parents.tail: if p == self: newtail.append(stage) else: newtail.append(p) parents.tail = newtail return

 

instead of :

 

. if self in self.network.head: stage.network.storageOrder = stage.storageOrder self.network.head.remove(self) self.network.head.append(stage) else: for parents in self.network.search_several(self.top): newtail = [] for p in parents.tail: if p == self: newtail.append(stage) parents.tail = newtail return
0 Kudos
idata
Employee
456 Views

@Annabar I'm glad that you were able to get it to work and appreciate that you posted your solution on the forum. Are you getting expected results from your model using these new changes?

0 Kudos
Reply