安装使用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”。
- 安装使用Qualcomm® Snapdragon™ Neural Processing Engine (NPE) SDK
- Qualcomm®骁龙™神经处理引擎(Neural Processing Engine, NPE)SDK快速入门指南
- Snapdragon Neural Processing Engine
- Snapdragon Neural Processing Engine
- 骁龙神经处理引擎(Snapdragon Neural Processing Engine)
- Qualcomm的神经处理引擎 (二) Snapdragon NPE SDK 的环境配置
- Qualcomm的神经处理引擎 (三) Snapdragon NPE SDK配置及用例
- 美国高通 Snapdragon Neural Processing Engine SDK (SNPE) 系列 (1):用户自定义层JNI实现
- 美国高通 Snapdragon Neural Processing Engine SDK (SNPE) 系列 (2):支持的网络层
- Snapdragon NPE SDK 的环境配置
- Snapdragon NPE SDK配置及用例
- Facebook和Qualcomm合作优化Caffe2和Snapdragon NPE
- Neural Processing Engine
- Qualcomm 8x50 Snapdragon Block Diagram 簡介
- Qualcomm Snapdragon Debugger for Visual Studio
- Qualcomm Symphony System Manager SDK使用举例
- 【Adreno Profiler】Adreno Profiler & SnapDragon profiler 的安装和使用
- snapdragon连接、使用总结
- mysql下的user表为空---mysql错误
- curl访问https网站时,先导入certificate,然后再访问
- 创建数据表和修改数据表
- js Set类型
- git中Please enter a commit message to explain why this merge is necessary.
- 安装使用Qualcomm® Snapdragon™ Neural Processing Engine (NPE) SDK
- Golang学习之InterfaceAddrs获取本地IP
- 分布式架构与分布式锁
- leetcode 第79题:BFS(广度优先搜索)的简单应用
- 倒茶宴请礼仪简介
- 光环国际PMP:项目管理中如何与客户拉近关系
- 文章标题
- POJ-1789 Truck History(prim算法,最小生成树)
- 子网掩码和IP段计算