Table of Contents

Instructions for KSNN conversion tool

Introduction and guide on how to use the KSNN conversion tool.

Get the conversion tool

The conversion tool is integrated in the NPU SDK.

$ git lfs install
$ git lfs clone --recursive https://github.com/khadas/aml_npu_sdk.git

The KSNN conversion tool is under acuity-toolkit/python,

$ cd aml_npu_sdk/acuity-toolkit/python && ls
$ convert  data  outputs

Conversion example

Choose tensorflow MobileNet SSD as an example.

1. Get the frozen model,

$ cd aml_npu_sdk/acuity-toolkit/python
$ wget https://github.com/yan-wyb/models-zoo/raw/master/tensorflow/mobilenet_ssd/ssd_mobilenet_v1_coco_2017_11_17.pb

2. Convert,

# uint8
$ ./convert --model-name mobilenet_ssd \
>           --platform tensorflow \
>           --model /home/yan/yan/Yan/models-zoo/tensorflow/mobilenet_ssd/ssd_mobilenet_v1_coco_2017_11_17.pb \
>           --input-size-list '300,300,3' \
>           --inputs FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_0/BatchNorm/batchnorm/mul_1 \
>           --outputs "'concat concat_1'" \
>           --mean-values '127.5 127.5 127.5 0.007843137' \
>           --quantized-dtype asymmetric_affine \
>           --source-files ./data/dataset/dataset0.txt \
>           --kboard VIM3 --print-level 0
 
# int8
$ ./convert --model-name mobilenet_ssd \
>           --platform tensorflow \
>           --model /home/yan/yan/Yan/models-zoo/tensorflow/mobilenet_ssd/ssd_mobilenet_v1_coco_2017_11_17.pb \
>           --input-size-list '300,300,3' \
>           --inputs FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_0/BatchNorm/batchnorm/mul_1 \
>           --outputs "'concat concat_1'" \
>           --mean-values '127.5 127.5 127.5 0.007843137' \
>           --quantized-dtype dynamic_fixed_point \
>           --qtype int8 \
>           --source-files ./data/dataset/dataset0.txt \
>           --kboard VIM3 --print-level 0
 
# int16
$ ./convert --model-name mobilenet_ssd \
>           --platform tensorflow \
>           --model /home/yan/yan/Yan/models-zoo/tensorflow/mobilenet_ssd/ssd_mobilenet_v1_coco_2017_11_17.pb \
>           --input-size-list '300,300,3' \
>           --inputs FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_0/BatchNorm/batchnorm/mul_1 \
>           --outputs "'concat concat_1'" \
>           --mean-values '127.5 127.5 127.5 0.007843137' \
>           --quantized-dtype dynamic_fixed_point \
>           --qtype int16 \
>           --source-files ./data/dataset/dataset0.txt \
>           --kboard VIM3 --print-level 0

During conversion, if you need to view detailed information, you can modify –print-level 0 to –print-level 1.

3. Model file generated after conversion.

$ cd aml_npu_sdk/acuity-toolkit/python
$ ls outputs/mobilenet_ssd/
mobilenet_ssd.nb  libnn_mobilenet_ssd.so

More