介绍

高通®神经处理 SDK允许开发人员将ONNX 或 TensorFlow 中训练的神经网络模型进行转换,并在骁龙 ® 移动平台上以最佳方式运行它们。下面,我们将向您展示如何设置高通神经处理SDK 并使用它来构建您的第一个工作应用程序。

法律免责声明:您对本指南的使用,包括但不限于下面的说明、步骤和命令,须遵守网站使用条款,并且可能包含对非高通技术或其附属公司分发的第三方或开源软件的引用。您对任何此类第三方或开源软件的安装、配置和使用以及遵守任何适用的许可证负全部责任。

系统要求
使用SDK需要以下依赖:

通用要求
- x86_64 Linux 工作站,用于 DLC 准备、生成、量化
Ubuntu 20.04(Windows10/11上的本机操作系统环境或WSL2环境)
以下框架之一:
TensorFlow
ONNX
PyTorch
TensorFlow Lite

支持 高通 神经处理 SDK 的设备要求
- 用于运行已编译的模型二进制文件的 Android 设备
(可选)Android Studio
Android SDK(通过 Android Studio 安装或独立安装)
Android NDK (android-ndk-r19c-linux-x86_64)(通过 Android Studio SDK Manager 安装或独立安装)
- 用于构建应用程序和运行已编译模型二进制文件的 Windows ARM64 设备
Windows 11
Visual Studio 2019 16.6.0 和使用 C++ 进行桌面开发
适用于 Windows 的 C++ CMake 工具
MSVC v142 C++ x86 构建工具 – 14.24
MSVC v142 ARM64 构建工具 – 14.24
Windows SDK 10.0.18362

设置高通神经处理SDK
此步骤允许 SDK 通过 Python API 与 TensorFlow、ONNX 和 TensorFlow Lite 框架配合使用。请按照以下步骤在 Ubuntu 20.04 上设置 SDK:
1.下载最新版本的 SDK
2.将 SDK 的 .zip 文件解压到适当的位置(例如 ~/snpe-sdk)。
3.安装SDK的依赖项:

4.验证是否安装了所有依赖项:


5.验证 Python 依赖项是否已安装:


6.初始化高通神经处理SDK环境:


注意:将 ANDROID_NDK_ROOT 设置为 Android Studio 安装位置。
7.根据您选择的机器学习框架设置 SDK 环境:
TensorFlow 的环境设置
导航到 $SNPE_ROOT 并运行以下脚本来设置 TensorFlow 的 SDK 环境:


其中 $TENSORFLOW_DIR 是 TensorFlow 安装的路径。
ONNX 的环境设置
导航到 $SNPE_ROOT 并运行以下脚本来设置 ONNX 的 SDK 环境:


其中 $ONNX_DIR 是 ONNX 安装的路径。
TensorFlow Lite 的环境设置
导航到 $SNPE_ROOT 并运行以下脚本来设置 TensorFlow Lite 的 SDK 环境:


初始化将执行以下操作:
更新 $SNPE_ROOT、$PATH、$LD_LIBRARY_PATH、$PYTHONPATH、$TENSORFLOW_DIR 或 $ONNX_DIR
将Android NDK libgnustl_shared.so库复制到本地
更新 Android AAR 存档
下载机器学习模型并将其转换为 .dlc 格式
高通神经处理SDK 不捆绑任何模型文件,但包含用于下载一些流行的公开可用模型并将其转换为高通技术专有的深度学习容器 (.dlc) 格式的脚本。请按照以下步骤使用这些脚本:
1.运行以下命令以 TensorFlow 格式下载并转换预训练的 inception_v3 示例:提示:查看 setup_inceptionv3.py 脚本,该脚本还对模型执行量化,以将其大小减少近 75%(91MB 减少到 23MB)。


构建 SDK 的示例 Android 应用程序
高通神经处理SDK 包括一个示例 Android 应用程序,该应用程序结合了骁龙NPE 运行时(由/android/snpe-release.aar Android 库提供)和上述 DLC 模型示例。
请按照以下步骤构建此示例应用程序:

运行以下命令通过复制运行时和模型来准备应用程序:


选择以下选项之一来构建 APK:
选项 A:在 Android Studio 中构建 APK:
启动 Android Studio。
在~/snpe-sdk/examples/android/image-classifiers中打开项目。
接受 Android Studio 建议来升级构建系统组件(如果有)。
单击“运行应用程序”按钮来构建并运行 APK。
选项 B:执行以下命令从命令行构建 APK:


注意:上面的命令可能需要将 ANDROID_HOME 和 JAVA_HOME 设置为系统中 Android SDK 和 JRE/JDK 的位置。

构建 Windows 应用程序
本教程演示如何构建可以在 Windows PC 或 Windows 设备上执行神经网络模型的 C++ 示例应用程序。

使用 CMake 构建示例代码
1.解压SDK并通过管理员命令提示符打开位置
2.注册 高通 神经处理 SDK 的系统环境变量


3.生成可执行文件和SNPE.dll


选择 x64、ARM64 之一运行


或者在 Visual Studio 中打开生成的 .sln 并构建

运行网络
1.将 snpe-sample.exe、SNPE.dll 和示例资源(inception_v3.dlc、target_raw_list.txt 和上述 setup_inceptionv3.py 脚本生成的 4 个原始文件)复制到 WoS
注意:请将 target_raw_list.txt 原始相对路径与复制的执行位置保持一致
例如)如果原始文件放置在同一执行位置,则 target_raw_list.txt 应写成如下:
trash_bin.raw
notice_sign.raw
chairs.raw
plastic_cup.raw
2.将 dsp 共享对象、动态链接库文件复制到 dsp 运行时的同一文件夹中


注意:量化 DSP/HTP 图形并将其添加到 Ubuntu 20.04 工作站中的 dlc,以用于运行时 dsp


3.在命令提示符中通过网络运行可执行文件。输出张量作为原始二进制文件转储到“输出”文件夹。


容器的批量大小为 1
处理 DNN 输入:trash_bin.raw
处理 DNN 输入:notice_sign.raw
处理 DNN 输入:chairs.raw
处理 DNN 输入: Plastic_cup.raw

骁龙和高通神经处理 SDK是 高通 技术公司和/或其子公司的产品。

Qualcomm 解决方案

 

高通软件中心

通过集中式门户站无缝管理您的高通®软件和工具

下载软件中心