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.

Tensorflow for other custom program

idata
Employee
1,091 Views

Hello,

 

I am using with raspberry pi and I want to run my own program with custom created graph. Is there any way I can do with movidius???
0 Kudos
11 Replies
idata
Employee
782 Views

@smit.idevices You should be able to do this, although you will need to use a graph file compiled by the NCSDK. You can generate a compatible graph file by using mvnCCompile with your custom network. See https://movidius.github.io/ncsdk/tools/compile.html for more information regarding compiling a graph file.

 

In regards to writing your own program, you can visit https://movidius.github.io/ncsdk/c_api/ for more information on the C API and for the Python API please visit https://movidius.github.io/ncsdk/py_api/. You may also feel free to view and re-use example code from the NCAPP ZOO at: https://github.com/Movidius/ncappzoo. Good luck with your project!

0 Kudos
idata
Employee
782 Views

Thank you for the answer. I understood the flow but when I am converting my meta file to graph I am encountering following error:

 

Traceback (most recent call last):

 

File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py", line 1323, in _do_call

 

return fn(*args)

 

File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py", line 1293, in _run_fn

 

self._extend_graph()

 

File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py", line 1354, in _extend_graph

 

self._session, graph_def.SerializeToString(), status)

 

File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/errors_impl.py", line 473, in exit

 

c_api.TF_GetCode(self.status.status))

 

tensorflow.python.framework.errors_impl.InvalidArgumentError: No OpKernel was registered to support Op 'Unpack' with these attrs. Registered devices: [CPU], Registered kernels:

 

device='CPU'; T in [DT_BOOL]

 

device='CPU'; T in [DT_FLOAT]

 

device='CPU'; T in [DT_INT32]

 

[[Node: unstack_20 = Unpack[T=DT_STRING, axis=0, num=24, _device="/device:GPU:0"](prefetch_queue_Dequeue:20)]]

 

Edit:

 

This is a checkpoint file from tensorflow object detection API and it is trained on GPU with tf version 1.4
0 Kudos
idata
Employee
782 Views

@Tome_at_Intel can you please let me know how can I convert my trained check point file into movidius graph??

0 Kudos
idata
Employee
782 Views

@smit.idevices Converting your network is done using mvNCCompile. You have to specify the input node by using the -in and output node by using the -on flags. In order to help debug your issue, can you provide me with the command that you tried to use to run your network?

0 Kudos
idata
Employee
782 Views

@Tome_at_Intel I am using tensorflow object detection model ssd_mobilenet_v1_coco and I have a frozen .pb graph and checkpoint files like model.ckpt.meta/.index etc. I tried using model.ckpt.meta and I got following error (input and output nodes are default):

 

smit@raspberrypi:~/DevelopmentGit/models/research $ mvNCCompile object_detection/model/model.ckpt.meta -in input_tensor -o network.graph

 

mvNCCompile v02.00, Copyright @ Movidius Ltd 2016

 

/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/ops.py:814: DeprecationWarning: builtin type EagerTensor has no module attribute

 

EagerTensor = c_api.TFE_Py_InitEagerTensor(_EagerTensorBase)

 

/usr/local/lib/python3.5/dist-packages/tensorflow/python/util/tf_inspect.py:45: DeprecationWarning: inspect.getargspec() is deprecated, use inspect.signature() instead

 

if d.decorator_argspec is not None), _inspect.getargspec(target))

 

/usr/local/lib/python3.5/dist-packages/tensorflow/python/util/tf_inspect.py:45: DeprecationWarning: inspect.getargspec() is deprecated, use inspect.signature() instead

 

if d.decorator_argspec is not None), _inspect.getargspec(target))

 

Traceback (most recent call last):

 

File "/usr/local/bin/mvNCCompile", line 118, in

 

create_graph(args.network, args.inputnode, args.outputnode, args.outfile, args.nshaves, args.inputsize, args.weights)

 

File "/usr/local/bin/mvNCCompile", line 104, in create_graph

 

net = parse_tensor(args, myriad_config)

 

File "/usr/local/bin/ncsdk/Controllers/TensorFlowParser.py", line 194, in parse_tensor

 

inputTensor = graph.get_tensor_by_name(inputnode + ':0')

 

File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/ops.py", line 3328, in get_tensor_by_name

 

return self.as_graph_element(name, allow_tensor=True, allow_operation=False)

 

File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/ops.py", line 3156, in as_graph_element

 

return self._as_graph_element_locked(obj, allow_tensor, allow_operation)

 

File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/ops.py", line 3198, in _as_graph_element_locked

 

"graph." % (repr(name), repr(op_name)))

 

KeyError: "The name 'input_tensor:0' refers to a Tensor which does not exist. The operation, 'input_tensor', does not exist in the graph."
0 Kudos
idata
Employee
782 Views

@smit.idevices Have you solved the issue? I am trying to compile a custom model, and I know the input and output nodes, but when I try to compile it shows me the same error as you: The name 'tensorname:0' refers to a Tensor which does not exist. The operation, 'tensorname', does not exist in the graph.

0 Kudos
idata
Employee
782 Views

@albertcliment no as movidius is not supporting SSD mobilenet from tensorflow object detection model

0 Kudos
idata
Employee
782 Views

looking forward to a SSD Mobilenet support for Tensorflow in the future!

0 Kudos
idata
Employee
782 Views

@smit.idevices @albertcliment hello guys I have the same problems as you, did you solve it? Please give me some help…And @Tome_at_Intel do you know how to fix this problem???

0 Kudos
idata
Employee
782 Views

@WuXinyang no as SSD Mobilenet for Tesnorflow is still not supported :(

0 Kudos
idata
Employee
782 Views

@WuXinyang There currently isn't support for SSD MobileNet for TensorFlow. We do have TinyYoloV2 Tensorflow support via Darkflow transformation if you are interested @ https://github.com/movidius/ncsdk/releases/tag/v1.12.00.01

0 Kudos
Reply