模型开发部署过程
1.模型转换
支持直接导入caffe、tensorflow、onnx、tflite、keras、darknet、pytorch等模型格式,自带模型转换工具(pegasus工具),生成.json和.data格式模型文件;
例:pegasus import onnx --model yolov5s-sim.onnx --output-data yolov5s-sim.data --output-model yolov5s-sim.json --outputs “350 498 646”
2.模型量化
支持离线量化(后训练量化PTQ)和量化感知训练(QAT),对于QAT训练得到的tflite和onnx格式模型,在模型import阶段会根据原生模型中的量化描述生成量化表文件;
自动生成yml文件例:pegasus generate inputmeta --model yolov5s-sim.json --input-meta-output yolov5s-sim_inputmeta.yml pegasus generate postprocess-file --model yolov5s-sim.json --postprocess-file-output yolov5s-sim_postprocess_file.yml
量化例:pegasus quantize --model yolov5s-sim.json --model-data yolov5s-sim.data --batch-size 1 --device CPU --with-input-meta yolov5s-sim_inputmeta.yml --rebuild --model-quantize yolov5s-sim.quantize --quantizer asymmetric_affine --qtype uint8
3.模型导出
可导出用于在端侧运行的NBG模型文件和用于仿真和profile的代码文件
例:pegasus export ovxlib --model yolov5s-sim.json --model-data yolov5s-sim.data --dtype quantized --model-quantize yolov5s-sim.quantize --batch-size 1 --save-fused-graph --target-ide-project ‘linux64’ --with-input-meta yolov5s-sim_inputmeta.yml --output-path ovxilb/yolov5s-sim/yolov5s-simprj --pack-nbg-unify --postprocess-file yolov5s-sim_postprocessmeta.yml --optimize “VIP9000PICO_PID0XEE” --viv-sdk ${VIV_SDK}
4.模型仿真和profile
仿真IDE:VeriSilicon VivanteIDE5.5.0
profile可有助于分析网络的运行效率,带宽,帧率以及各层处理性能;
5.端侧部署
基于VIPLite API开发程序实现业务逻辑
yoloV3 demo api示例: