Khadas Docs

Amazing Khadas, always amazes you!

User Tools

Site Tools


products:sbc:vim4:npu:npu-sdk

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
products:sbc:vim4:npu:npu-sdk [2023/08/30 03:02]
louis
products:sbc:vim4:npu:npu-sdk [2024/04/18 04:33] (current)
nick [Get Convert Tool]
Line 1: Line 1:
 +~~tag>VIM4 NPU Docker ~~
  
 ====== NPU Model Convert ====== ====== NPU Model Convert ======
 +
 +{{indexmenu_n>2}}
  
 <WRAP important > <WRAP important >
-Only **New VIM4** supports NPU, you can check the version of your VIM4 here: [[products:sbc:vim4:configurations:identify-version|]]+Only **New VIM4** supports NPU, you can [[../configurations/identify-version|check VIM4 the version]]
 </WRAP> </WRAP>
  
Line 10: Line 13:
 </WRAP> </WRAP>
  
-===== Build Virtual Environment =====+===== Build Docker Environment =====
  
 Follow Docker official docs to install Docker: [[https://docs.docker.com/engine/install/ubuntu/|Install Docker Engine on Ubuntu]]. Follow Docker official docs to install Docker: [[https://docs.docker.com/engine/install/ubuntu/|Install Docker Engine on Ubuntu]].
  
-Get Docker:+Follow the script below to get Docker image:
  
 ```shell ```shell
-$ cd vim4_npu_sdk +docker pull numbqq/npu-vim4
-docker pull yanwyb/npu:v1 +
-$ docker run -it --name vim4-npu1 -v $(pwd):/home/khadas/npu \ +
- -v /etc/localtime:/etc/localtime:ro \ +
- -v /etc/timezone:/etc/timezone:ro \ +
- yanwyb/npu:v1+
 ``` ```
  
Line 31: Line 29:
 $ cd vim4_npu_sdk $ cd vim4_npu_sdk
 $ ls $ ls
-bin  demo  docs  README.md+adla-toolkit-binary  adla-toolkit-binary-1.2.0.9  convert-in-docker.sh  Dockerfile  docs  README.md
 ``` ```
  
-  * ''docs'' - SDK documentations +  * ''adla-toolkit-binary/docs'' - SDK documentations 
-  * ''bin'' - SDK tools required for model conversion +  * ''adla-toolkit-binary/bin'' - SDK tools required for model conversion 
-  * ''demo'' - Conversion examples+  * ''adla-toolkit-binary/demo'' - Conversion examples
  
 ===== Convert Model ===== ===== Convert Model =====
Line 43: Line 41:
  
 ```shell ```shell
-$ khadas@2655b6cbbc01:~/npu$ cd demo/ +./convert-in-docker.sh
-$ khadas@2655b6cbbc01:~/npu/demo$ bash convert_adla.sh+
 ``` ```
  
Line 50: Line 47:
  
 ```shell ```shell
-$ khadas@2655b6cbbc01:~/npu/demo$ ls+~/vim4_npu_sdk$ ls adla-toolkit-binary/demo/
 caffe_output     darknet_output  dataset.txt   libstdc++_so  mxnet_output  paddle_output   quantized_tflite_output  tflite_output caffe_output     darknet_output  dataset.txt   libstdc++_so  mxnet_output  paddle_output   quantized_tflite_output  tflite_output
 convert_adla.sh  data            keras_output  model_source  onnx_output   pytorch_output  tensorflow_output convert_adla.sh  data            keras_output  model_source  onnx_output   pytorch_output  tensorflow_output
Line 56: Line 53:
  
 Converted model is ''xxxx.adla''. Converted model is ''xxxx.adla''.
 +
 +<WRAP tip >
 +If you want to convert your own model, just modify script ''adla-toolkit-binary/demo/convert_adla.sh'' and  then execute ''./convert-in-docker.sh'' to convert your model.
 +</WRAP>
 +
  
 ==== Important parameters ==== ==== Important parameters ====
Line 63: Line 65:
   * ''inputs/input-shapes'' - ''inputs''  Input node names. ''input-shapes''  The sizes of input nodes. Need to be set when model-type is pytorch/onnx/mxnet/tensorflow/ tflite/paddle.   * ''inputs/input-shapes'' - ''inputs''  Input node names. ''input-shapes''  The sizes of input nodes. Need to be set when model-type is pytorch/onnx/mxnet/tensorflow/ tflite/paddle.
   * ''outputs'' - Output node names. When model-type is tensorflow, outputs needs to be set.   * ''outputs'' - Output node names. When model-type is tensorflow, outputs needs to be set.
-  * ''dtypes'' - Input type, set the type information corresponding to the input (optional).Defaultfloat32. +  * ''dtypes'' - Input type, set the type information corresponding to the input (optional).Default ''float32''
-  * ''quantize-dtype'' - Quantization type. Currently, it supports int8, int16 and uint8 quantization types.+  * ''quantize-dtype'' - Quantization type. Currently, it supports ''int8''''int16'' and ''uint8'' quantification types.
   * ''source-file'' - ''dataset.txt''. The txt file contains paths to the images that need to be quantized. It supports images and npy files.   * ''source-file'' - ''dataset.txt''. The txt file contains paths to the images that need to be quantized. It supports images and npy files.
   * ''channel-mean-value'' - The pre-processing parameters are set according to the pre processing methods used during model training. It includes four values, m1, m2, m3, and scale. The first three are mean-value parameters and the last one is the scale parameter. For the input data with three channels (data1, data2, data3), the pre-processing steps are   * ''channel-mean-value'' - The pre-processing parameters are set according to the pre processing methods used during model training. It includes four values, m1, m2, m3, and scale. The first three are mean-value parameters and the last one is the scale parameter. For the input data with three channels (data1, data2, data3), the pre-processing steps are
Line 72: Line 74:
   * ''batch-size'' - Set the batch-size for the adla file after conversion. Currently, the default value is 1.   * ''batch-size'' - Set the batch-size for the adla file after conversion. Currently, the default value is 1.
   * ''iterations'' - Optional parameter, if ''dataset.txt'' provides data for multi-groups, and needs to use all data provided for quantization, set ''iterations'' and make sure iterations*batch size = Number of data in the multi-groups.   * ''iterations'' - Optional parameter, if ''dataset.txt'' provides data for multi-groups, and needs to use all data provided for quantization, set ''iterations'' and make sure iterations*batch size = Number of data in the multi-groups.
-  * ''outdir'' - Directory for the generated. The default value is the current directory ''./''.+  * ''outdir'' - Directory for the generated. The default value is the current directory.
   * ''target-platform'' - Specify the target platform for the adla file, it should be ''PRODUCT_PID0XA003'' for VIM4.   * ''target-platform'' - Specify the target platform for the adla file, it should be ''PRODUCT_PID0XA003'' for VIM4.
  
Last modified: 2023/08/30 03:02 by louis