需求
需要使用高通骁龙神经处理引擎(SNPE)进行手机App的开发,这是一个充分利用高通处理器并行计算能力的框架,旨在通过高通骁龙移动平台丰富的计算资源,为开发者提供更快的神经网络推理。根据官方手册,需要以下配置:
环境:Ubuntu18.04
平台:Android Studio
依赖项:
Tensorflow、Caffe
Android SDK(通过 Android Studio 安装或单独安装)
Android NDK(android-ndk-r17c-linux-x86)(通过 Android Studio SDK Manager 安装或作为独立的)
1.安装Ubuntu18.04和Python
首先安装Ubuntu18.01环境和Python,这里需要保证默认调用的是Python3.x的版本。
调整Python版本
如果默认的不是Python3.x的版本,需要进行调整。
进入/usr/bin
目录下,输入ls -l | grep python
显示所有名字中包含python的文件,可以发现发现电脑中有Python3.6的版本,但是python默认调用Python2.7。
修改python的指向即可。
sudo rm -rf python
sudo ln -s /usr/bin/python3 /usr/bin/python
2.安装SNPE
安装SNPE的依赖项
sudo apt-get install python3-dev python3-matplotlib python3-numpy python3-protobuf python3-scipy python3-skimage python3-sphinx wget zip
通过source bin/dependencies.sh
和source bin/check_python_depends.sh
检查是否全部依赖项安装完全,如果没有就单独安装(如果下载超时,及时更换镜像源)。
下图中出现缺少python-protobuf
的情况,通过单独安装解决问题。
全部安装完成后,应该如下所示。
3.安装TensorFlow和Caffe
直接安装cpu版的TensorFlow和Caffe,然后进行测试。
sudo apt-get install tensorflow
sudo apt-get install caffe-cpu
Caffe出现问题,原因是在安装其他库的过程中,numpy库的版本变了,只需升级一下scikit-image
库就可以解决。
pip install -U scikit-image
4.配置TensorFlow和SNPE
通过pip show -f tensorflow | grep Location
获取TensorFlow的安装位置。
设置 TensorFlow SNPE 环境。
source bin/envsetup.sh -t /usr/local/lib/python3.6/dist-packages/tensorflow/
测试是否配置成功,如果打印出help,则完成配置。
5.使用SNPE 推理 InceptionV3
(1)下载 inception_v3并解压
wget https://storage.googleapis.com/download.tensorflow.org/models/inception_v3_2016_08_28_frozen.pb.tar.gz
tar -zxvf inception_v3_2016_08_28_frozen.pb.tar.gz
mv inception_v3_2016_08_28_frozen.pb inception_v3.pb
(2)将inception_v3.pb转化为SNPE支持的DLC模型格式 inception_v3.dlc
snpe-tensorflow-to-dlc -i inception_v3.pb -d input 1,299,299,3 --out_node InceptionV3/Predictions/Reshape_1
(3)准备input数据 和 验证脚本
# 生成数据
python3 $SNPE_ROOT/models/inception_v3/scripts/setup_inceptionv3.py -a ~/tmpdir -d
# copy 数据到当前测试目录
cp $SNPE_ROOT/models/inception_v3/data . -r
# copy 后处理脚本
cp $SNPE_ROOT/models/inception_v3/scripts/show_inceptionv3_classifications.py .
(4) 在当前Ubuntu 环境下用SNPE推理 inception_v3
(5)查看推理结果
REF
官方手册
上手SNPE-推理inception_v3
修改Linux默认python版本
Ubuntu上安装Caffe
Caffe报错