骁龙神经处理引擎SDK参考指南(2)

281 篇文章 30 订阅
17 篇文章 8 订阅


3 设置

3.1 SNPE 设置

3.1.1 安装

本章介绍了 SNPE 所需工具的设置和 SDK 安装。

3.1.2先决条件

  1. 目前SNPE SDK开发环境仅限于Ubuntu,具体为18.04版本。
    我们还验证了 SDK 可以在 Linux 的 Windows 子系统 (WSL2) 环境版本 1.1.3.0 上无缝运行。
    如果您想设置自己的 WSL2 环境,可以按照 Microsoft 在
    https://learn.microsoft.com/en-us/windows/wsl/install提供的说明进行操作。

  2. SDK 需要 Caffe、Caffe2、ONNX、PyTorch、TensorFlow 或 TFLite。
    Caffe 说明:Caffe 和 Caffe2 设置
    TensorFlow 说明:TensorFlow 设置
    ONNX 说明:ONNX 设置
    TFLite 说明:TFLite 设置
    PyTorch 说明:PyTorch 设置

  3. Python 3.6
    “/usr/bin/python”和“python”应该指向 Python 3。可以使用以下步骤实现:

	 为 python 创建替代列表
          $ sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
          $ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2

     检查 python 列表
          $ 更新选项 --list python

     更新备选方案以选择所需的 python 版本
          $ sudo update-alternatives --config python
  1. Android NDK (android-ndk-r17c-linux-x86) 是可选的,只需要构建 SDK 附带的本机 CPP 示例
    使用clang构建的 SDK Android 二进制文件需要随 SDK 一起提供的libc++_shared.so 。(请参阅下面的平台运行时库)。
  2. Android SDK(SDK 版本 23 和构建工具版本 23.0.2)是可选的,只需要构建 SDK 附带的 Android APK。

3.1.3 设置SDK环境和依赖

SDK环境搭建说明如下。

将 SDK 解压到一个目录。SDK 解压缩到的目录称为 $SNPE_ROOT。请注意本节中使用的“XYZ”。它指的是正在使用的发布 zip(例如 snpe-1.0.0.zip)。

解压-X snpe-XYZzip

运行 dependencies 脚本以检查系统是否存在 Ubuntu 包依赖项。它会要求安装缺少的。安装缺少的包。

来源 snpe-XYZ/bin/dependencies.sh

运行 python 依赖项检查程序以检查系统是否存在 python 包依赖项。安装缺少的包。

来源 snpe-XYZ/bin/check_python_depends.sh

使用 SNPE SDK 测试的 Python 包版本是:

  • numpy v1.16.5
  • 斯芬克斯 v2.2.1
  • scipy v1.3.1
  • matplotlib v3.0.3
  • skimage v0.15.0
  • protobuf v3.6.0
  • pyyaml v5.1

平台运行时库

$SNPE_ROOT 指安装SNPE SDK的目录路径。

  • Aarch64 Linux 运行时库要求Aarch64 Linux 目标需要
    libatomic.so.1 。在较新的目标设备上,这在库路径中的平台 SW 中可用。对于这些平台(例如使用 aarch64-oe-linux-gcc8.2 工具链),该库在设备上不可用,需要从 SNPE SDK 明确复制。

3.1.4 设置环境

在 Android 上构建本机 C++ 示例(构建您的第一个 SNPE 本机应用程序)需要安装 Android NDK,并按照以下命令导出 ANDROID_NDK_ROOT。

导出 ANDROID_NDK_ROOT=<path_to_ndk>
如果未设置 ANDROID_NDK_ROOT,环境设置脚本将尝试通过搜索 ndk-build 来查找 NDK 路径。

3.1.5 Caffe 的环境设置

  • 将 SNPE SDK 与 Caffe 模型一起使用需要有效的 Caffe 安装(请参阅Caffe 和 Caffe2 设置。)
  • 转到 $SNPE_ROOT 并运行以下脚本来设置 SNPE SDK 环境。必须提供 Caffe 目录的位置。
源 bin/envsetup.sh -c $CAFFE_DIR
其中 $CAFFE_DIR 是 Caffe 安装的路径。
  • 该脚本可能会显示有关 Caffe SHA 不匹配的警告。脚本检查的 SHA 是 SDK 测试过的 SHA。可以使用不同版本的 Caffe,包括从源代码构建的版本。可以忽略此警告。
  • 该脚本设置以下环境变量:
  SNPE_ROOT:SNPE SDK安装根目录
  CAFFE_HOME:您提供的 Caffe 安装的根目录($CAFFE_DIR)
  • 该脚本还更新 PATH、LD_LIBRARY_PATH 和 PYTHONPATH。

3.1.5 Caffe2的环境设置

  • 使用带有 Caffe2 模型的 SNPE SDK 需要有效的 Caffe2 安装。(请参阅Caffe 和 Caffe2 设置。)
    转到 $SNPE_ROOT 并运行以下脚本来设置 SNPE SDK 环境。必须提供 Caffe2 目录的位置。
源 bin/envsetup.sh -f $CAFFE2_DIR

   其中 $CAFFE2_DIR 是 Caffe2 安装的路径。
  • 该脚本设置以下环境变量:
  SNPE_ROOT:SNPE SDK安装根目录
  CAFFE2_HOME:您提供的 Caffe2 安装的根目录($CAFFE2_DIR)
  • 该脚本还更新 PATH、LD_LIBRARY_PATH 和 PYTHONPATH。

3.1.6 TensorFlow 的环境设置

  • 将 SNPE SDK 与 TensorFlow 模型一起使用需要有效的 TensorFlow 安装(请参阅TensorFlow 设置。)
  • 转到 $SNPE_ROOT 并运行以下脚本来设置 SNPE SDK 环境。必须提供 TensorFlow 目录的位置。
源 bin/envsetup.sh -t $TENSORFLOW_DIR
其中 $TENSORFLOW_DIR 是 TensorFlow 安装的路径。
  • 该脚本设置以下环境变量。
  SNPE_ROOT:SNPE SDK安装根目录
  TENSORFLOW_HOME:提供的TensorFlow安装根目录
  • 该脚本还更新 PATH、LD_LIBRARY_PATH 和 PYTHONPATH。

3.1.7 ONNX 的环境设置

  • 将 SNPE SDK 与 ONNX 模型一起使用需要有效的 ONNX 安装(请参阅ONNX 设置。)
  • 转到 $SNPE_ROOT 并运行以下脚本来设置 SNPE SDK 环境。必须提供 ONNX 目录的位置。
源 bin/envsetup.sh -o $ONNX_DIR
其中 $ONNX_DIR 是 ONNX 安装的路径。
  • 该脚本设置以下环境变量。
  SNPE_ROOT:SNPE SDK安装根目录
  ONNX_HOME:提供的TensorFlow安装根目录
  • 该脚本还更新 PATH、LD_LIBRARY_PATH 和 PYTHONPATH。

3.1.8 TFLite 的环境设置

  • 将 SNPE SDK 与 TFLite 模型一起使用需要有效的 TFLite 安装(请参阅TFLite 设置。)
  • 转到 $SNPE_ROOT 并运行以下脚本来设置 SNPE SDK 环境。
源 bin/envsetup.sh
  • 该脚本设置以下环境变量。
SNPE_ROOT:SNPE SDK安装根目录
  • 该脚本还更新 PATH、LD_LIBRARY_PATH 和 PYTHONPATH。

3.1.9 PyTorch 的环境设置

  • 将 SNPE SDK 与 PyTorch 模型一起使用需要有效的 PyTorch 安装(请参阅PyTorch 设置。)
  • 转到 $SNPE_ROOT 并运行以下脚本来设置 SNPE SDK 环境。
源 bin/envsetup.sh
  • 该脚本设置以下环境变量。
SNPE_ROOT:SNPE SDK安装根目录
  • 该脚本还更新 PATH、LD_LIBRARY_PATH 和 PYTHONPATH。

3.2 Caffe 和 Caffe2 设置

3.2.1 获取 Caffe

如果 SNPE SDK 将与 Caffe 一起使用,则需要安装 Caffe。

  • 要从开源 ( https://github.com/BVLC/caffe ) 克隆和构建 Caffe,请使用 git commit SHA 18b09e807a6e146750d84e89a961ba8e678830b4,因为此 SHA 已使用 SNPE SDK 进行了测试。其他 SHA 也可能有效,但尚未经过测试。
cd <path_to_caffe> 
git reset --hard 18b09e807a6e146750d84e89a961ba8e678830b4
  • 在 ubuntu 16.04 上构建 Caffe 的说明可在此处获得:http 😕/caffe.berkeleyvision.org/install_apt.html
  • 此处提供编译和安装 Caffe 所需的命令列表: http: //caffe.berkeleyvision.org/installation.html#compilation。下面提供了必要步骤的摘要。
cp Makefile.config.example Makefile.config 
make all 
make test 
make runtest 
make distribute 
make pycaffe <---- 这是重要的一步,因为
                   snpe-caffe-to-dlc 转换脚本
                   依赖于 Caffe python 绑定
  • 现在继续SNPE 设置的 其余部分

3.2.2 获取 Caffe2

Caffe2 是一个快速发展的项目。您可以从 Ubuntu 的预构建二进制文件安装 Caffe2 或从源代码构建。

此链接 ( Caffe2 ) 提供了有关设置 Caffe2 的最新说明。

3.3 TensorFlow 设置

如果 SNPE SDK 将与 TensorFlow 一起使用,则需要安装 TensorFlow。

3.3.1 获取 TensorFlow

  • TensorFlow 设置说明位于https://www.tensorflow.org/install。按照说明在 Ubuntu Linux 上安装 TensorFlow。
    SNPE SDK 已通过 TensorFlow v1.6 和 Tensorflow v2.3 测试

  • 注意:snpe-tensorflow-to-dlc 已更新,支持转换 Tensorflow 2.3 模型。虽然某些 TF 1.x 模型可能会使用 Tensorflow 2.3 作为转换框架成功转换,但通常建议使用与训练模型相同的 TF 版本进行转换。一些较旧的 1.x 模型可能根本无法使用 TF 2.3 进行转换,并且可能需要 TF 1.x 实例才能成功转换。

  • 继续SNPE 设置 的其余部分

3.4 TFLite 设置

如果 SNPE SDK 将与 TFlite 模型一起使用,则需要安装 TFLite。

获取 TFlite

  • SNPE SDK 已通过 TFLite v2.3.0 测试
  • 请使用https://pypi.org/project/tflite/2.3.0/ 将 TFLite 安装为独立的 Python 模块,并使用以下测试代码确保 TFLite 在您的 PYTHONPATH 中:
 $ python -c “导入 tflite”
  • 继续SNPE 设置 的其余部分

3.5 PyTorch 设置

如果 SNPE SDK 将与 PyTorch 模型一起使用,则需要安装 PyTorch。

获取 PyTorch

  • SNPE SDK 已通过 PyTorch v1.8.1 测试
  • 请使用https://pytorch.org/get-started/locally 将 PyTorch 安装为独立的 Python 模块,并使用以下测试代码确保 PyTorch 在您的 PYTHONPATH 中:
$ python -c "导入手电筒"
  • 继续SNPE 设置 的其余部分

3.6 ONNX 设置

为了将 SNPE SDK 与 ONNX 一起使用,系统上必须安装 ONNX。

按照https://github.com/onnx/onnx#installation上的说明在 Ubuntu Linux 上安装 ONNX,然后继续SNPE 设置的其余部分。

下面提到了内部测试的 Onnx 及其依赖项的版本。

  • onnx v1.3.0
  • onnx v1.6.0
  • numpy v1.16.5
  • protobuf v3.6.0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值