安装使用Qualcomm® Snapdragon™ Neural Processing Engine (NPE) SDK

来源:互联网 发布:golang test用法 编辑:程序博客网 时间:2024/05/20 13:37

本文介绍了如何开始使用Qualcomm®Snapdragon™神经处理引擎(NPE)SDK。 从干净的Ubuntu安装开始,本教程旨在为您提供安装依赖性的步骤,设置SDK工具,下载并准备一些示例神经网络模型,最后构建可用于解决方案的示例Android APP 使用人工智能(AI)。

系统要求

我们建议在专用机器上执行以下操作,以更好地了解SDK依赖关系:
1. 安装Ubuntu 14.04(推荐),例如在虚拟机上。
2. 安装最新版本的Android Studio。
3. 安装最新的Android SDK,可以从Android Studio安装,或者独立安装。
4. 安装最新的Android NDK,可以从Android Studio SDK Manager中安装,或者独立安装。
5. 安装Caffe(安装说明,本SDK推荐的git修订版d8f79537)。

# this will build Caffe (and the pycaffe bindings) from source - see the official instructions for more informationsudo apt-get install cmake git libatlas-base-dev libboost-all-dev libgflags-dev libgoogle-glog-dev libhdf5-serial-dev libleveldb-dev liblmdb-dev libopencv-dev libprotobuf-dev libsnappy-dev protobuf-compiler python-dev python-numpygit clone https://github.com/BVLC/caffe.git ~/caffe; cd ~/caffe; git reset --hard d8f79537mkdir build; cd build; cmake ..; make all -j4; make install 

6. 可选:安装TensorFlow(推荐安装说明,版本1.0)。

# this will download and install TensorFlow in a virtual environment - see the official instructions for more informationsudo apt-get install python-pip python-dev python-virtualenvmkdir ~/tensorflow; virtualenv --system-site-packages ~/tensorflow; source ~/tensorflow/bin/activatepip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.0.0-cp27-none-linux_x86_64.whl 

设置SDK

此步骤允许Snapdragon NPE SDK通过python API与Caffe和Tensorflow框架进行通信。 要在Ubuntu 14.04上设置SDK,请按以下步骤操作:

1. 确保已安装Android NDK,Caffe(这里假定为~/caffe)和可选的TensorFlow(这里假定为~/tensorflow),然后继续。
2. 下载最新的Snapdragon NPE SDK。
3. 将.zip文件解包到适当的位置(这里假定在~/snpe-sdkfolder中)。
4. 安装缺少的系统包:

# install a few more SDK dependencies, then perform a comprehensive checksudo apt-get install python-dev python-matplotlib python-numpy python-protobuf python-scipy python-skimage python-sphinx wget zipsource ~/snpe-sdk/bin/dependencies.sh # verifies that all dependencies are installedsource ~/snpe-sdk/bin/check_python_depends.sh # verifies that the python dependencies are installed 

5. 在当前控制台上初始化Snapdragon NPE SDK环境; 在将来,为每个新的控制台重复此操作:

 # initialize the environment on the current consolecd ~/snpe-sdk/export ANDROID_NDK_ROOT=~/Android/Sdk/ndk-bundle # default location for Android Studio, replace with yourssource ./bin/envsetup.sh -c ~/caffesource ./bin/envsetup.sh -t ~/tensorflow # optional for this guide 

初始化将设置或更新$$SNPE_ROOT,$PATH,$LD_LIBRARY_PATH,$PYTHONPATH,$CAFFE_HOME,$TENSORFLOW_HOME,此外,它将在本地复制Android NDK libgnustl_shared.so库,并更新Android AAR存档。

下载MLModels并将其转换为.DLC

Snapdragon NPE SDK不捆绑可公开的模型文件,但包含用于下载一些流行模型并将其转换为深度学习容器(“DLC”)格式的脚本。 脚本位于/ models文件夹中,它还将包含DLC模型。

  • 以Caffe格式下载并转换预先训练的Alexnet示例:
cd $SNPE_ROOTpython ./models/alexnet/scripts/setup_alexnet.py -a ./temp-assets-cache -d

提示:查看setup_alexnet.py脚本,该脚本执行到DLC的转换。 您可能会对您的Caffe模型转换执行相同的操作。

  • 可选:以Tensorflow格式下载并转换预训练的“inception_v3”示例:
cd $SNPE_ROOTpython ./models/inception_v3/scripts/setup_inceptionv3.py -a ./temp-assets-cache -d

提示:看一下setup_inceptionv3.py脚本,它也对模型进行了量化,缩小了75%(91MB→23MB)。

构建示例Android APP

Android APP结合了Snapdragon NPE运行时(由/android/snpe-release.aar Android库提供)和上述Caffe Alexnet示例生成的DLC模型。

1. 通过复制运行时和模型来准备APP

cd $SNPE_ROOT/examples/android/image-classifierscp ../../../android/snpe-release.aar ./app/libs # copies the NPE runtime librarybash ./setup_models.sh # packages the Alexnet example (DLC, labels, imputs) as an Android resource file 

2.选项A:从Android studio构建Android APK:

1.启动Android Studio。2.在~/snpe-sdk/examples/android/image-classifiers文件夹中打开项目。3.如果提供,接受Android Studio建议来升级构建系统组件。4.按“运行应用程序”按钮构建并运行APK。

3.选项B:从命令行构建Android APK:

sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1libbz2-1.0:i386 # Android SDK build dependencies on ubuntu./gradlew assembleDebug # build the APK 

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

下一步是什么?

恭喜,您刚刚使用Snapdragon NPE SDK向您发布了第一个应用程序。 现在是开始创建自己的AI解决方案的时候了!

这里写图片描述

示例Android APP的源代码演示了如何正确使用SDK。 ClassifyImageTask.java是开始学习的好起点。 API文档,教程和架构详细信息可以在SDK中附带的文档中找到。 将浏览器指向/doc/html/index.html开始学习。 有关常见问题的答案可以在论坛中找到,在那里您还可以与我们的专家讨论“API”。

阅读全文
0 0
原创粉丝点击