kendryte / nncase

Open deep learning compiler stack for Kendryte AI accelerators ✨
Apache License 2.0
748 stars 182 forks source link

Fatal: Length of memory (162) must match product of dimensions (648). #4

Closed onionstack closed 5 years ago

onionstack commented 5 years ago

Convert TFLite model to K210 model. Type the command: ncc -i tflite -o k210model ./detect.tflite ./detect.kmodel An error: Fatal: Length of memory (162) must match product of dimensions (648).

sunnycase commented 5 years ago

Can you provide the detect.tflite?

onionstack commented 5 years ago

@sunnycase 这个模型我拿来测试用的,应该是这个模型有问题, 我现在需要一个20classes_yolo.pb的模型 我在kendryte-model-compiler 中发现了20classes_yolo.pb模型,怎么才能转换成.kmodel格式呢?

onionstack commented 5 years ago

@sunnycase l@ubuntu:~/k210$ ncc -i tflite -o k210model ./20classes_yolo.tflite ./mbnetv1.kmodel Fatal: Index was outside the bounds of the array.

W_0 ===> Const
W_0/read ===> Identity
B_0 ===> Const
B_0/read ===> Identity
scales_0 ===> Const
scales_0/read ===> Identity
mean_0 ===> Const
mean_0/read ===> Identity
variance_0 ===> Const
variance_0/read ===> Identity
W_2 ===> Const
W_2/read ===> Identity
B_2 ===> Const
B_2/read ===> Identity
scales_2 ===> Const
scales_2/read ===> Identity
mean_2 ===> Const
mean_2/read ===> Identity
variance_2 ===> Const
variance_2/read ===> Identity
W_3 ===> Const
W_3/read ===> Identity
B_3 ===> Const
B_3/read ===> Identity
scales_3 ===> Const
scales_3/read ===> Identity
mean_3 ===> Const
mean_3/read ===> Identity
variance_3 ===> Const
variance_3/read ===> Identity
W_5 ===> Const
W_5/read ===> Identity
B_5 ===> Const
B_5/read ===> Identity
scales_5 ===> Const
scales_5/read ===> Identity
mean_5 ===> Const
mean_5/read ===> Identity
variance_5 ===> Const
variance_5/read ===> Identity
W_6 ===> Const
W_6/read ===> Identity
B_6 ===> Const
B_6/read ===> Identity
scales_6 ===> Const
scales_6/read ===> Identity
mean_6 ===> Const
mean_6/read ===> Identity
variance_6 ===> Const
variance_6/read ===> Identity
W_8 ===> Const
W_8/read ===> Identity
B_8 ===> Const
B_8/read ===> Identity
scales_8 ===> Const
scales_8/read ===> Identity
mean_8 ===> Const
mean_8/read ===> Identity
variance_8 ===> Const
variance_8/read ===> Identity
W_9 ===> Const
W_9/read ===> Identity
B_9 ===> Const
B_9/read ===> Identity
scales_9 ===> Const
scales_9/read ===> Identity
mean_9 ===> Const
mean_9/read ===> Identity
variance_9 ===> Const
variance_9/read ===> Identity
W_11 ===> Const
W_11/read ===> Identity
B_11 ===> Const
B_11/read ===> Identity
scales_11 ===> Const
scales_11/read ===> Identity
mean_11 ===> Const
mean_11/read ===> Identity
variance_11 ===> Const
variance_11/read ===> Identity
W_12 ===> Const
W_12/read ===> Identity
B_12 ===> Const
B_12/read ===> Identity
scales_12 ===> Const
scales_12/read ===> Identity
mean_12 ===> Const
mean_12/read ===> Identity
variance_12 ===> Const
variance_12/read ===> Identity
W_14 ===> Const
W_14/read ===> Identity
B_14 ===> Const
B_14/read ===> Identity
scales_14 ===> Const
scales_14/read ===> Identity
mean_14 ===> Const
mean_14/read ===> Identity
variance_14 ===> Const
variance_14/read ===> Identity
W_15 ===> Const
W_15/read ===> Identity
B_15 ===> Const
B_15/read ===> Identity
scales_15 ===> Const
scales_15/read ===> Identity
mean_15 ===> Const
mean_15/read ===> Identity
variance_15 ===> Const
variance_15/read ===> Identity
W_17 ===> Const
W_17/read ===> Identity
B_17 ===> Const
B_17/read ===> Identity
scales_17 ===> Const
scales_17/read ===> Identity
mean_17 ===> Const
mean_17/read ===> Identity
variance_17 ===> Const
variance_17/read ===> Identity
W_18 ===> Const
W_18/read ===> Identity
B_18 ===> Const
B_18/read ===> Identity
scales_18 ===> Const
scales_18/read ===> Identity
mean_18 ===> Const
mean_18/read ===> Identity
variance_18 ===> Const
variance_18/read ===> Identity
W_19 ===> Const
W_19/read ===> Identity
B_19 ===> Const
B_19/read ===> Identity
scales_19 ===> Const
scales_19/read ===> Identity
mean_19 ===> Const
mean_19/read ===> Identity
variance_19 ===> Const
variance_19/read ===> Identity
W_20 ===> Const
W_20/read ===> Identity
B_20 ===> Const
B_20/read ===> Identity
scales_20 ===> Const
scales_20/read ===> Identity
mean_20 ===> Const
mean_20/read ===> Identity
variance_20 ===> Const
variance_20/read ===> Identity
W_21 ===> Const
W_21/read ===> Identity
B_21 ===> Const
B_21/read ===> Identity
input ===> Placeholder
Conv2d_0/conv2d ===> Conv2D
Conv2d_0/sub ===> Sub
Conv2d_0/Sqrt ===> Sqrt
Conv2d_0/add/y ===> Const
Conv2d_0/add ===> Add
Conv2d_0/truediv ===> RealDiv
Conv2d_0/BN ===> Mul
Conv2d_0/bias ===> Add
Conv2d_0/leaky/alpha ===> Const
Conv2d_0/leaky/mul ===> Mul
Conv2d_0/leaky ===> Maximum
Conv2d_0/max_pooling ===> MaxPool
dw_conv2d_2 ===> DepthwiseConv2dNative
sub ===> Sub
Sqrt ===> Sqrt
add/y ===> Const
add ===> Add
truediv ===> RealDiv
BN_0_2 ===> Mul
bias_0_2 ===> Add
leaky_0_2/alpha ===> Const
leaky_0_2/mul ===> Mul
leaky_0_2 ===> Maximum
conv2d_3 ===> Conv2D
sub_1 ===> Sub
Sqrt_1 ===> Sqrt
add_1/y ===> Const
add_1 ===> Add
truediv_1 ===> RealDiv
BN_1_3 ===> Mul
bias_1_3 ===> Add
leaky_1_3/alpha ===> Const
leaky_1_3/mul ===> Mul
leaky_1_3 ===> Maximum
max_pooling ===> MaxPool
dw_conv2d_5 ===> DepthwiseConv2dNative
sub_2 ===> Sub
Sqrt_2 ===> Sqrt
add_2/y ===> Const
add_2 ===> Add
truediv_2 ===> RealDiv
BN_0_5 ===> Mul
bias_0_5 ===> Add
leaky_0_5/alpha ===> Const
leaky_0_5/mul ===> Mul
leaky_0_5 ===> Maximum
conv2d_6 ===> Conv2D
sub_3 ===> Sub
Sqrt_3 ===> Sqrt
add_3/y ===> Const
add_3 ===> Add
truediv_3 ===> RealDiv
BN_1_6 ===> Mul
bias_1_6 ===> Add
leaky_1_6/alpha ===> Const
leaky_1_6/mul ===> Mul
leaky_1_6 ===> Maximum
max_pooling_1 ===> MaxPool
dw_conv2d_8 ===> DepthwiseConv2dNative
sub_4 ===> Sub
Sqrt_4 ===> Sqrt
add_4/y ===> Const
add_4 ===> Add
truediv_4 ===> RealDiv
BN_0_8 ===> Mul
bias_0_8 ===> Add
leaky_0_8/alpha ===> Const
leaky_0_8/mul ===> Mul
leaky_0_8 ===> Maximum
conv2d_9 ===> Conv2D
sub_5 ===> Sub
Sqrt_5 ===> Sqrt
add_5/y ===> Const
add_5 ===> Add
truediv_5 ===> RealDiv
BN_1_9 ===> Mul
bias_1_9 ===> Add
leaky_1_9/alpha ===> Const
leaky_1_9/mul ===> Mul
leaky_1_9 ===> Maximum
max_pooling_2 ===> MaxPool
dw_conv2d_11 ===> DepthwiseConv2dNative
sub_6 ===> Sub
Sqrt_6 ===> Sqrt
add_6/y ===> Const
add_6 ===> Add
truediv_6 ===> RealDiv
BN_0_11 ===> Mul
bias_0_11 ===> Add
leaky_0_11/alpha ===> Const
leaky_0_11/mul ===> Mul
leaky_0_11 ===> Maximum
conv2d_12 ===> Conv2D
sub_7 ===> Sub
Sqrt_7 ===> Sqrt
add_7/y ===> Const
add_7 ===> Add
truediv_7 ===> RealDiv
BN_1_12 ===> Mul
bias_1_12 ===> Add
leaky_1_12/alpha ===> Const
leaky_1_12/mul ===> Mul
leaky_1_12 ===> Maximum
max_pooling_3 ===> MaxPool
dw_conv2d_14 ===> DepthwiseConv2dNative
sub_8 ===> Sub
Sqrt_8 ===> Sqrt
add_8/y ===> Const
add_8 ===> Add
truediv_8 ===> RealDiv
BN_0_14 ===> Mul
bias_0_14 ===> Add
leaky_0_14/alpha ===> Const
leaky_0_14/mul ===> Mul
leaky_0_14 ===> Maximum
conv2d_15 ===> Conv2D
sub_9 ===> Sub
Sqrt_9 ===> Sqrt
add_9/y ===> Const
add_9 ===> Add
truediv_9 ===> RealDiv
BN_1_15 ===> Mul
bias_1_15 ===> Add
leaky_1_15/alpha ===> Const
leaky_1_15/mul ===> Mul
leaky_1_15 ===> Maximum
max_pool ===> MaxPool
dw_conv2d_17 ===> DepthwiseConv2dNative
sub_10 ===> Sub
Sqrt_10 ===> Sqrt
add_10/y ===> Const
add_10 ===> Add
truediv_10 ===> RealDiv
BN_0_17 ===> Mul
bias_0_17 ===> Add
leaky_0_17/alpha ===> Const
leaky_0_17/mul ===> Mul
leaky_0_17 ===> Maximum
conv2d_18 ===> Conv2D
sub_11 ===> Sub
Sqrt_11 ===> Sqrt
add_11/y ===> Const
add_11 ===> Add
truediv_11 ===> RealDiv
BN_1_18 ===> Mul
bias_1_18 ===> Add
leaky_1_18/alpha ===> Const
leaky_1_18/mul ===> Mul
leaky_1_18 ===> Maximum
dw_conv2d_19 ===> DepthwiseConv2dNative
sub_12 ===> Sub
Sqrt_12 ===> Sqrt
add_12/y ===> Const
add_12 ===> Add
truediv_12 ===> RealDiv
BN_1_19 ===> Mul
bias_1_19 ===> Add
leaky_1_19/alpha ===> Const
leaky_1_19/mul ===> Mul
leaky_1_19 ===> Maximum
dw_conv2d_20 ===> Conv2D
sub_13 ===> Sub
Sqrt_13 ===> Sqrt
add_13/y ===> Const
add_13 ===> Add
truediv_13 ===> RealDiv
BN_20 ===> Mul
bias_20 ===> Add
leaky_20/alpha ===> Const
leaky_20/mul ===> Mul
leaky_20 ===> Maximum
Conv2d_21 ===> Conv2D
yv2 ===> Add

输入和输出节点在哪?

sunnycase commented 5 years ago

20classes_yolo.pb uses LeakyRelu which nncase doesn't support yet.

sunnycase commented 5 years ago

Leaky relu was implemented in v0.1.0-rc2