高通SNPE SDK介绍 (1)

一、简介
Qualcomm®Snapdragon™移动平台具有广泛的异构计算功能,这些功能经过精心设计,可以在设备上运行经过训练的神经网络,而无需连接到云。 用于人工智能(AI)的Qualcomm®神经处理SDK旨在帮助开发人员在Snapdragon移动平台(无论是CPU,GPU还是DSP)上运行经过Caffe / Caffe2,ONNX或TensorFlow训练的一个或多个神经网络模型。
它通过提供用于模型转换和执行的工具以及用于通过功能和性能配置文件来针对核心的API以匹配所需的用户体验来实现此目的。 另外其支持卷积神经网络和自定义层。
SNPE SDK完成了在Snapdragon移动平台上运行神经网络所需的许多繁重工作,这可以帮助开发人员提供更多时间和资源来专注于构建新的创新用户体验。

二、SNPE SDK
Snapdragon神经处理引擎(SNPE)是Qualcomm Snapdragon软件加速的运行时,用于执行深度神经网络。 借助SNPE,用户可以:
1)执行任意深度的神经网络。
2)在SnapdragonTM CPU,AdrenoTM GPU或HexagonTM DSP上执行网络。
3)在x86 Ubuntu Linux上调试网络执行。
4)将Caffe,Caffe2,ONNXTM和TensorFlowTM模型转换为SNPE深度学习容器(DLC)文件。
5)将DLC文件量化为8位固定点以在Hexagon DSP上运行。
6)使用SNPE工具调试和分析网络性能。
7)通过C ++或Java将网络集成到应用程序和其他代码中。

工作流程
模型训练是在流行的深度学习框架上进行的(SNPE支持Caffe,Caffe2,ONNX和TensorFlow模型。)训练完成后,将训练后的模型转换为DLC文件,可以将其加载到SNPE运行时中。 然后,可以使用Snapdragon加速的计算核心之一将此DLC文件用于执行前向推理过程。 SNPE基本工作流程仅包含几个步骤:在这里插入图片描述

将网络模型转换为SNPE可以加载的DLC文件。
(可选)量化DLC文件以在Hexagon DSP上运行。
准备模型的输入数据。
使用SNPE运行时加载并执行模型。
测试模型
添加环境变量:
bool SetAdspLibraryPath(std::string nativeLibPath) {
std::stringstream path;
path << nativeLibPath << “;/system/lib/rfsa/adsp;/system/vendor/lib/rfsa/adsp;/dsp”;
return setenv(“ADSP_LIBRARY_PATH”, path.str().c_str(), 1 /override/) == 0;
}
./snpe-net-run --container ./modelname.dlc --input_list list.one –use_dsp
为了使AI开发人员的生活更轻松,Qualcomm神经处理软件开发工具包没有定义另一个网络层库。 取而代之的是,它使开发人员可以使用熟悉的框架自由设计和训练网络,并在发布时支持Caffe / Caffe2,ONNX和TensorFlow。 开发工作流程如下:
在这里插入图片描述
经过设计和培训后,需要将模型文件转换为“ .dlc”(深度学习容器)文件,以供Snapdragon NPE运行时使用。 转换工具将输出转换统计信息,包括有关不受支持或未加速的图层的信息,开发人员可以使用这些信息来调整初始模型的设计。
使用Qualcomm神经处理SDK进行人工智能开发确实需要一些先决条件,然后才能开始创建解决方案:

1)在一个或多个垂直方向上运行卷积模型,包括移动,汽车,物联网,AR,无人机和机器人技术。
2)设计和训练模型,或者已经拥有预先训练的模型文件。
3)需要框架是Caffe / Caffe2,ONNX或TensorFlow。
4)作用于Android的JAVA APP或用于Android或Linux的本机应用程序。
5)Ubuntu 14.04开发环境。
6)受支持的设备来测试应用程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值