====== 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. You can download it from [[dl>products/vim3/tools/npu-sdk/| aml_npu_sdk]] ```shell $ wget https://dl.khadas.com/products/vim3/tools/npu-sdk/aml_npu_sdk-ddk-6.4.8.7-250427.tgz $ tar xvzf aml_npu_sdk-ddk-6.4.8.7-250427.tgz $ ln -fs aml_npu_sdk-ddk-6.4.8.7-250427 aml_npu_sdk ``` The KSNN conversion tool is under ''acuity-toolkit/python'', ```shell $ 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, ```shell $ cd aml_npu_sdk/acuity-toolkit/python $ wget https://github.com/numbqq/models-zoo/raw/master/tensorflow/mobilenet_ssd/ssd_mobilenet_v1_coco_2017_11_17.pb ``` 2. Convert, ```shell # uint8 $ ./convert --model-name mobilenet_ssd \ --platform tensorflow \ --model ./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 ./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 ./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. ```shell $ cd aml_npu_sdk/acuity-toolkit/python $ ls outputs/mobilenet_ssd/ mobilenet_ssd.nb libnn_mobilenet_ssd.so ``` ===== More ===== - [[ksnn-usage|KSNN Usage]] - [[ksnn-api|KSNN API Documentation]]