SyNAP 下载

工具下载

SyNAP 工具软件的下载地址如下:

包名

本地下载

百度网盘下载

synap_tools_3.0.0.zip

synap_tools_3.0.0.zip

synap_tools_3.0.0.zip

SL1680上模型量化方法

SyNAP 工具包允许将模型从原始格式转换为针对目标硬件(如 SL1680 )优化的内部表示形式。 支持以下网络模型格式:

  • Tensorflow Lite (.tflite)

  • Tensorflow (.pb)

  • ONNX (.onnx)

  • Caffe (.prototxt)

通过以 ONNX 格式导出模型,可以间接支持 Pytorch 模型

在 Ubuntu 环境下使用 SyNAP 工具包:

一、安装SyNAP Tools

  ...

#首先需要安装docker

  sudo apt-get install docker.io

#添加用户到docker组

  sudo groupadd docker
  sudo usermod -aG docker $USER

#重启生效

  reboot
  ...

#docker镜像包校验

  md5sum synap_tools_3.0.0.zip
  cfbf9432f5859df541b3249b864899be  synap_tools_3.0.0.zip

#解压

  unzip synap_tools_3.0.0.zip
  md5sum toolkit\:3.0.0.tar
  f25f300c00cf72d64e86e4bf491fd716  toolkit:3.0.0.tar

#导入镜像

  sudo docker load -i toolkit\:3.0.0.tar
../../../_images/load_image.png


二、以 ONNX 格式导出YOLOV5S模型

...
pip install ultralytics
from ultralytics import YOLO
model = YOLO("yolov5s.pt")
success = model.export(format="onnx")
# export the model to onnx format
assert success
print("转换成功")
# Load the exported ONNX model
onnx_model = YOLO("yolov5s.onnx")
# Run inference
results = onnx_model("https://ultralytics.com/images/bus.jpg")
...

三、运行模型转换,指定 YAML 元文件

...
alias synap='docker run -i --rm -u $(id -u):$(id -g) -v $HOME:$HOME -w $(pwd) ghcr.io/syna-synap/toolkit:3.0.0'
...
#运行synap help如下图所示,表示成功运行
../../../_images/synap_help.png
#yolov5s.yaml
data_layout: nchw

inputs:
- name: images
  shape: [1, 3, 640, 640]
  means: [0, 0, 0]
  scale: 255
  format: rgb
  security: any

outputs:
 - name: outputs
   dequantize: true
   format: yolov5 w_scale=640 h_scale=640

quantization:
 data_type: int16
   # scheme: asymmetric_affine
   # mode: standard
   # algorithm: kl_divergence
 dataset:
   - ./*.jpg  # jpg图像存放的路径 ./为和yolov5s.yaml同级目录

运行该命令进行模型转换:

synap convert --model yolo/yolov5s.onnx --meta yolo/yolov5s.yaml --target VS680 --out-format nb --out-dir yolo/model

synap convert --model yolo/yolov5s.onnx --meta yolo/yolov5s.yaml --target SL1680 --out-dir yolo/model
../../../_images/synap_convert.png


--model

指定要转换的输入模型文件。

--meta

.yaml 指定元数据文件,其中包含转换过程的配置和优化参数。

--target

指定优化模型的目标硬件平台 SL1680VS680

--out-dir

指定保存转换后模型文件的输出目录。

可选参数 --out-format nb 会生成 model.nbmodel.json 用于 VS680

默认生成 model.synap 文件用于 SL1680

../../../_images/synap_convert_eg.png


../../../_images/tree_yolo.png


为了在速度和精度之间进行更精细的权衡,Synap 支持混合量化,使用 yaml 文件来进行配置。

更详细的文档请参考: 模型转换