SyNAP 下载
工具下载
SyNAP 工具软件的下载地址如下:
包名 |
本地下载 |
百度网盘下载 |
---|---|---|
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
二、以 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如下图所示,表示成功运行
#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
- --model
指定要转换的输入模型文件。
- --meta
.yaml
指定元数据文件,其中包含转换过程的配置和优化参数。- --target
指定优化模型的目标硬件平台
SL1680
,VS680
。- --out-dir
指定保存转换后模型文件的输出目录。
可选参数 --out-format nb
会生成 model.nb
, model.json
用于 VS680
。
默认生成 model.synap
文件用于 SL1680
。
为了在速度和精度之间进行更精细的权衡,Synap 支持混合量化,使用 yaml
文件来进行配置。
更详细的文档请参考: 模型转换