I am trying to compile a Tensorflow graph for movidius and getting this error, are Pow operations not supported by the sdk?
It seems like this is NOT supported. ANy help will be appreciated!
We have done some more work on Movidius and we found that following operations are missing-
These are our requests - we want Movidius to support -
1) m x n convolutions:
So looks like- it only supports square convolution operation, i.e, conv2d( x, [n,n], …), where n is the width and height of an image for instance. But we have non-square data and we want to apply the conv2d on it but Movidius doesn't work with that.
2) Bug: basic operations (like scalar multiplication) don't work on the input tensor ! Seems like it is crashing.
Can you please help?
@AshwinVijayakumar Thanks. @leninpatra Which version of the NCSDK are you using?
- The NCSDK does indeed have support for non-square convolutions; i.e. the Inception model features non-square convolutions (1x3, 3x1, 1x7, 7x1, etc).
- tf.nn.moments is not supported as of NCSDK 2.05. This feature hasn't been implemented yet and I cannot provide a roadmap at the moment.
- Multiplication is only implemented for Tensors at the moment. If any scaling needs to be performed on the input, it should be performed outside of the model in the deployment application.
- Looking at the NCSDK 2.05 TensorFlow parser, Subtraction seems to be implemented.
Hope this helps.
Basically i have a 128x1 convolution but when i ran it on the movidius, it interpreted it as a 128x128 and that caused the resulting dimension to underflow..and it is really crashing..
--------This is the error we are seeing---------------
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/tensor_shape.py", line 39, in init
raise ValueError("Dimension %d must be >= 0" % self._value)
ValueError: Dimension -7 must be >= 0
So- can current movidius SDK support long 1d // or long slim convolutions ~ of the like of 128x1 or 128x4, etc etc?
Thanks for the help-
@leninpatra We definitely support some 1d convolutions as seen in the inception networks. I don't know if we support convolutions as large as 128x1 or 128x4. If you would can provide the network, I'd like to take a look at your issue to pinpoint the issue.
Additionally how are you determining that the convolution is being interpreted as 128x128? Thanks!
It seems like as long as the convolution is < 120x1, Then Movidius can support it.
can you please reach out to your internal ML SW development team and see movidius can support 128x1 convolution?
If you look at the error dimension-7: essentially Movidius SW framework is converting the 128x1 to a square convolution. SInce it is large, it is crashing..
Appreciate the help to resolve this problem!
@leninpatra Thanks for reporting this. I'm trying to re-create what you are seeing, so that we can examine the issue on our setup. What NCSDK version are you using and if possible, can you include a link to the model you're using? Thanks.
I have created a model for you-
this network is supposed to do a 128x1 convolution on a 512x32 input, resulting in a 385x32 output
however, the movidius model crashes because it tries to do a 128x128 convolution on the 512x32 input, resulting in a 385x(-95) output.