Some error occurs when convert tinyyolo( converted to tensorflow pb file by darkflow):
2017-08-18 16:42:40,329 - 388 - WARNING - WARNING_TF_SCOPE_OP_NOT_CONSUMED: Scope (Pad) operation(s) not consumed by converter: [u'Pad'].
2017-08-18 16:42:40,329 - 122 - ERROR - Conversion failed: Some nodes in the Tensorflow graph were not resolved to a layer!
Any progress on this? Were you able to get Tiny YOLO working with SNPE?
Hi yaochuanqi,
Did you meet the unconsumed operations about elementwise ops, such as mul/add/max?
What about the solution to it?
I wrote a simple linear regression demo, when convert pb file to dlc, it would report unconsumed ops: add/mul.
Thank you! Hope to get response as soon as possible!
Element-wise operations require two input layers (when converted to DLC) so the inputs can not be const operations but other operation types which are converted to a SNPE layer.
With respect to pad operations, it is not currently supported.
Hi dmarques,
Thanks for replying!
Do you mean that, element-wise operations accept layers as inputs, but it is currently not supported, because of pad operations?
So element-wise operations are currently not supported by convert tool?
In the tensorflow graph the 2 inputs of the element wise operation must be nodes which correspond to a layer. For example if you have the following:
Conv2D (A) \
> EltWiseSum
Conv2D (B) /
It will convert to the following layers:
Conv2D (A)
Conv2D (B)
EltWiseSum
However if you have for example:
Conv2D (A) \
> EltWiseSum
Const /
This won't work as the Const node is not a layer. The same will happen if the input Operation to an EltWise is not a supported operation by SNPE.
Please review the "Tensorflow Graph Compatibility" section of the docs for more details on supported operations.
Hi dmarques,
Thank you, and I will try the way you provided.
And here is another question: I'm not sure about parameter "--allow_unconsumed_nodes", when I convert slim.separable_convolution2d, snpe-tensorflow-to-dlc would report:
2017-11-22 10:42:49,070 - 308 - WARNING - WARNING_TF_SCOPE_OP_NOT_CONSUMED: Operation (MobileNet/conv_ds_2/depthwise_conv/BiasAdd) not consumed by converter: BiasAdd.
2017-11-22 10:42:49,071 - 123 - ERROR - Conversion failed: ERROR_TF_OPERATION_NOT_MAPPED_TO_LAYER: Some operations in the Tensorflow graph were not resolved to a layer. You can use --allow_unconsumed_nodes for partial graph resolution!
I've checked the BiasAdd API, it is actually nn.bias_add. If I use --allow_unconsumed_nodes parameter, it would output a converted dlc file, but still got the warning log:
2017-11-22 11:31:07,168 - 308 - WARNING - WARNING_TF_SCOPE_OP_NOT_CONSUMED: Operation (MobileNet/conv_ds_2/depthwise_conv/BiasAdd) not consumed by converter: BiasAdd.
The question is what does snpe-tensorflow-to-dlc do with BiasAdd operation? Does it just simply ignore BiasAdd operation, and there are no BiasAdd operations in the output dlc file? If does, the dlc file would not give correct computation result.
yes,I have tested, it just simply ignore the unconsumed operation(here is the BiasAdd operation).
Are you able to create a minimal frozen graph which reproduces the issue you are seeing? The BiasAdd operation should be converted properly given it follows a Conv2D operation and is in the same tensorflow named scope.
Hi, dmarques
Do you know when SNPE will support the pad operation?
Thank you very much.