- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Hello!

Thank you for your product!

Im trying to transfer the TF network based on mobilenet 0.75 (https://github.com/ildoonet/tf-pose-estimation) to ncsdk.

The command to compile is the following (v. 1.12.00):

`mvNCCompile model-1.meta -in=image -on=Openpose/concat_stage7 -s12`

(I've attached .pb text representation of the graph as well as checkpoint at https://drive.google.com/file/d/12W4uiGBHmKjMG_O5hPd_a9vmS0asB22U/view?usp=sharing)

input is:

```
node {
name: "image"
op: "Placeholder"
attr {
key: "dtype"
value {
type: DT_FLOAT
}
}
attr {
key: "shape"
value {
shape {
dim {
size: 1
}
dim {
size: 432
}
dim {
size: 368
}
dim {
size: 3
}
}
}
}
}
```

The compile process starts well, but on one stage it gives the error that it can not be able to find node named 'Openpose/MConv_Stage1_L1_1_pointwise/Relu':

```
mvNCCompile v02.00, Copyright @ Movidius Ltd 2016
/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/ops.py:766: 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))
Fusing depthconv and conv in MobilenetV1/Conv2d_1_depthwise/depthwise and MobilenetV1/Conv2d_1_pointwise/Conv2D
Fusing depthconv and conv in MobilenetV1/Conv2d_2_depthwise/depthwise and MobilenetV1/Conv2d_2_pointwise/Conv2D
Fusing depthconv and conv in MobilenetV1/Conv2d_3_depthwise/depthwise and MobilenetV1/Conv2d_3_pointwise/Conv2D
Fusing depthconv and conv in MobilenetV1/Conv2d_4_depthwise/depthwise and MobilenetV1/Conv2d_4_pointwise/Conv2D
Fusing depthconv and conv in MobilenetV1/Conv2d_5_depthwise/depthwise and MobilenetV1/Conv2d_5_pointwise/Conv2D
Fusing depthconv and conv in MobilenetV1/Conv2d_6_depthwise/depthwise and MobilenetV1/Conv2d_6_pointwise/Conv2D
Fusing depthconv and conv in MobilenetV1/Conv2d_7_depthwise/depthwise and MobilenetV1/Conv2d_7_pointwise/Conv2D
Fusing depthconv and conv in MobilenetV1/Conv2d_8_depthwise/depthwise and MobilenetV1/Conv2d_8_pointwise/Conv2D
Fusing depthconv and conv in MobilenetV1/Conv2d_9_depthwise/depthwise and MobilenetV1/Conv2d_9_pointwise/Conv2D
Fusing depthconv and conv in MobilenetV1/Conv2d_10_depthwise/depthwise and MobilenetV1/Conv2d_10_pointwise/Conv2D
Fusing depthconv and conv in MobilenetV1/Conv2d_11_depthwise/depthwise and MobilenetV1/Conv2d_11_pointwise/Conv2D
Fusing depthconv and conv in Openpose/MConv_Stage1_L1_1_depthwise/depthwise and Openpose/MConv_Stage1_L1_1_pointwise/Conv2D
[Error 17] Toolkit Error: Internal Error: Could not build graph. Missing link: Openpose/MConv_Stage1_L1_1_pointwise/Relu
```

But if you take a look at graph.pb you can see the definition of this node:

```
node {
name: "Openpose/MConv_Stage1_L1_1_pointwise/Relu"
op: "Relu"
input: "Openpose/MConv_Stage1_L1_1_pointwise/BatchNorm/FusedBatchNorm"
attr {
key: "T"
value {
type: DT_FLOAT
}
}
}
```

ane the only reference to it is:

```
node {
name: "Openpose/MConv_Stage1_L1_2_depthwise/depthwise"
op: "DepthwiseConv2dNative"
input: "Openpose/MConv_Stage1_L1_1_pointwise/Relu"
input: "Openpose/MConv_Stage1_L1_2_depthwise/depthwise_weights/read"
attr {
key: "T"
value {
type: DT_FLOAT
}
}
attr {
key: "data_format"
value {
s: "NHWC"
}
}
attr {
key: "dilations"
value {
list {
i: 1
i: 1
i: 1
i: 1
}
}
}
attr {
key: "padding"
value {
s: "SAME"
}
}
attr {
key: "strides"
value {
list {
i: 1
i: 1
i: 1
i: 1
}
}
}
}
```

So is it a consequence of some inner node renaming or aliasing?

How can I debug to find out why it can not find existing node by name?

Thank you in advance for your help!

Link Copied

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

I've attached imgs of the situation

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

@jokilokis I just want to let you know that I was able to reproduce your issue. I don't see anything obviously wrong so far.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Thank you Tome!

Can I do something to clarify the problem for your team (simplify the example for example) ?

Is there a chance that it will be fixed in the future releases?

Thank you!

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

update:

I've set explicit = True in TensorFlowParser.py after

`elif (node.type == "Concat" or node.type == "ConcatV2") and not node.inputs[0].dtype.is_integer:`

(it was error related to ConcatV2)

and the error is gone (IDK if it's correct compilation) but I got new compile errors, I'll post here after some trials

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

@jokilokis how did you solve?

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Any update on this issue? I have met the same problem.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

@hzc @jokilokis I don't have any updates on this issue yet.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Is this issue solved now?

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

I just managed to compile the tf-openpose mobilenet_tiny model for movidius using the ncsdk v2.0.

I had to fix two bugs in the ncsdk in order to succeed. The two main points for improvement of ncsdk (specificaly the mvNCCompile.py) are:

- when checking if need to apply image size parameter depending on the input tensor shape being not defined, include the case when it's shape has been defined with values -1, -1 for the input tensor height and width dimensions. (TensorFlowParser.py, parse_tensor, "if shape.dims is None:")
- when checking if a NetworkStage instance to attach has multiple inputs, check if the first element of top is longer than one instead of checking if top has more than one elements (in the Network.py, attach, "elif len(stage.top) > 1:" -> "elif len(stage.top[0]) > 1:")

With those two fixes, the model successfully compiles.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

I already found the problem with "shape.dims is None" myself (I beleive), but I'm stuck with this same issue (trying to make idoonet's mobilenet_thin openpose on mvnc)…

Please @aharon.haravon could you explain a little more the solution, o maybe share your new modified version of the code?

Thanks in advance

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page