DLC Conversion to Deploy DeepLearning Models in Qualcomm Hardware.
SNPE: SnapDragon Nueral Processing Engine.
SNPE converts the DL framework specific model formats (*.protobuf, *.pb, *.onnx, etc) to a SNPE specific proprietary format called DLC (Deep Learning Container).
The layers that are supported by SNPE are https://developer.qualcomm.com/docs/snpe/network_layers.html
Limitations of SNPE : https://developer.qualcomm.com/docs/snpe/limitations.html
This webpage consists of the conversion from the tensorflow model to the deep learning contiainer file. Once the DLC conversion is done SNPE-NET-RUN will be performed over the converted DLC file.
What Snpe-Net-Run does is it loads a DLC file loads the data for the input tensor(s), and executes the network on the specified runtime.
Notes:
- If you have trained a nueral network but the qualcomm SNPE does not support these operations then we can change that particular layer and retrain the model and use it.
- For example RELU activation function is not supported then we replace it with the sigmoid as the activation function.
- Sometimes there will be constraint that the matmul operation takes the input only int he 1-Dimensional format. These things can modified accordingly to run the model on the target hardware.
- For example, NMS operation is not supported in SNPE we will convert the DLC till the NMS part and the C++ code for the NMS operation will be written manually and integrated.
Once the DLC is converted then it can be dployed on to the target hardware.