高通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改为任意值。

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值