高通SNPE

DL Container Loader: SNPE使用后缀为dlc的模型文件,提供了模型load函数。

Model Validation: 检查输入模型与所选择的运行后端是否合法。

Runtime Engine: 选择运行模式的API,包括CPU,GPU,DSP和AIP四种运行模式。

Partitioning Logic: 模型处理API,包括检查网络layer的合法性,调度网络的runtime。

CPU Runtime:CPU运行模型,支持32-bit和8-bit量化模型。

GPU Runtime:GPU运行模型,支持混合或完整16位浮点模式。

DSP Runtime: Hexagon DSP运行模型,使用Q6和hexagon NN,在HVX上运行,只支持8-bit量化模型。

AIP Runtime: Hexagon DSP运行模型,使用Q6,Hexgaon NN和HTA,只支持8-bit量化模型。

SNPE SDK:https://developer.qualcomm.com/sites/default/files/docs/snpe/model_conversion.html

pytorch -> dlc

训练好的pytorch模型需要先转成TorchScript模型(.pt),然后再通过snpe-pytorch-to-dlc转为dlc格式的文件。

import torch
import torchvision.models as models
resnet18_model = models.resnet18()
input_shape = [1, 3, 224, 224]
input_data = torch.randn(input_shape)
script_model = torch.jit.trace(resnet18_model, input_data)
script_model.save('resnet18.pt')
snpe-pytorch-to-dlc --input_network resnet18.pt \
					--input_dim input "1,3,224,224"
					--output_path resnet18.dlc

SNPE和pytorch的转换器目前仅支持浮点输入数据类型。

ONNX -> dlc

snpe-onnx-to-dlc --input_network bvlc_alexnet.onnx \
				 --output_path bvlc_alexnet.dlc

Quantizing a Model

snpe-dlc-quantize --input_dlc inception_v3.dlc \
				  --input_list image_file_list.txt \
				  --output_dlc inception_v3_quantized.dlc

image list指定用于量化的原始图像文件路径。这个工具需要在模型转换时,batch size设为1。推理时,通过模型初始化阶段,resize这个网络,可以将batch size改为任意值。

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

平丘月初

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值