当前位置: 首页 > news >正文

高通SNPE测试:6、在开发板上运行Inception v3 Model(oe-linux)

实际上还是很顺利的,终于来到了使用开发板进行测试了。

  • 环境变量

教程是aarch64-android,我的板子是linux。

# For Android targets: architecture: arm64-v8a - compiler: clang - STL: libc++
# export SNPE_TARGET_ARCH=aarch64-android
# Example for LE targets
export SNPE_TARGET_ARCH=aarch64-oe-linux-gcc11.2
  • 复制文件1:adb shell方式
# For Android targets: architecture: arm64-v8a - compiler: clang - STL: libc++
# export SNPE_TARGET_ARCH=aarch64-android
# Example for LE targets
export SNPE_TARGET_ARCH=aarch64-oe-linux-gcc11.2export SNPE_TARGET_DSPARCH=hexagon-v73DST_DIR=${DST_ROOT}/data/local/snpe/snpeexampleadb shell "mkdir -p ${DST_DIR}/$SNPE_TARGET_ARCH/bin"
adb shell "mkdir -p ${DST_DIR}/$SNPE_TARGET_ARCH/lib"
adb shell "mkdir -p ${DST_DIR}/dsp/lib"adb push $SNPE_ROOT/lib/$SNPE_TARGET_ARCH/*.so \${DST_DIR}/$SNPE_TARGET_ARCH/lib
adb push $SNPE_ROOT/lib/$SNPE_TARGET_DSPARCH/unsigned/*.so \${DST_DIR}/dsp/lib
adb push $SNPE_ROOT/bin/$SNPE_TARGET_ARCH/snpe-net-run \${DST_DIR}/$SNPE_TARGET_ARCH/bincd $SNPE_ROOT/examples/Models/InceptionV3
mkdir data/rawfiles && cp data/cropped/*.raw data/rawfiles/DST_DIR=/data/local/snpe/inception_v3
adb shell "mkdir -p                       ${DST_DIR}/cropped"
adb push   data/rawfiles                  ${DST_DIR}/cropped
adb push   data/target_raw_list.txt       ${DST_DIR}
adb push   dlc/inception_v3_quantized.dlc ${DST_DIR}
rm -rf data/rawfiles
  • 复制文件2:tar方式

比如我是虚拟机,先打包,再复制到开发板上解压移动过去。

# For Android targets: architecture: arm64-v8a - compiler: clang - STL: libc++
# export SNPE_TARGET_ARCH=aarch64-android
# Example for LE targets
export SNPE_TARGET_ARCH=aarch64-oe-linux-gcc11.2export SNPE_TARGET_DSPARCH=hexagon-v73WORK_PATH=`pwd`PLATFORM_NAME=sg882g
DST_ROOT=${WORK_PATH}/${PLATFORM_NAME}
if [ -d ${DST_ROOT} ]; thenrm -rf ${DST_ROOT}
fi
SNPE_ROOT_PATH=/data/local/snpe
DST_DIR=${DST_ROOT}/${SNPE_ROOT_PATH}/snpeexamplemkdir -p ${DST_DIR}/$SNPE_TARGET_ARCH/bin
mkdir -p ${DST_DIR}/$SNPE_TARGET_ARCH/lib
mkdir -p ${DST_DIR}/dsp/libcp  -rfP $SNPE_ROOT/lib/$SNPE_TARGET_ARCH/*.so \${DST_DIR}/$SNPE_TARGET_ARCH/lib
cp  -rfP $SNPE_ROOT/lib/$SNPE_TARGET_DSPARCH/unsigned/*.so \${DST_DIR}/dsp/lib
cp  -rfP $SNPE_ROOT/bin/$SNPE_TARGET_ARCH/snpe-net-run \${DST_DIR}/$SNPE_TARGET_ARCH/binDST_DIR=${DST_ROOT}/${SNPE_ROOT_PATH}/inception_v3
cd $SNPE_ROOT/examples/Models/InceptionV3
mkdir -p ${DST_DIR}/croppedcp -rfP data/cropped/*.raw             ${DST_DIR}/cropped
cp -rfP data/target_raw_list.txt       ${DST_DIR}
cp -rfP dlc/inception_v3_quantized.dlc ${DST_DIR}cd ${WORK_PATH}cp copy-to-sg882g.sh ${PLATFORM_NAME}
cp  run-on-sg882g.sh ${PLATFORM_NAME}TAR_FILE=${PLATFORM_NAME}.tar
if [ -f ${TAR_FILE} ]; thenrm ${TAR_FILE}
fi
tar -czf ${TAR_FILE} ${PLATFORM_NAME}DST_DIR=${HOME}/share/E
if [ -f ${DST_DIR}/${TAR_FILE} ]; thenrm  ${DST_DIR}/${TAR_FILE}
fi
cp ${TAR_FILE} ${DST_DIR}

其中的两个shell,一个是复制文件到系统,一个是运行。

  • 运行

注意,执行文件复制到/bin,库文件复制到/lib

# For Android targets: architecture: arm64-v8a - compiler: clang - STL: libc++
# export SNPE_TARGET_ARCH=aarch64-android
# Example for LE targets
export SNPE_TARGET_ARCH=aarch64-oe-linux-gcc11.2SNPE_ROOT_PATH=/data/local/snpe
SNPE_ARCH_PATH=${SNPE_ROOT_PATH}/snpeexample/$SNPE_TARGET_ARCHexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${SNPE_ARCH_PATH}/lib
export PATH=$PATH:${SNPE_ARCH_PATH}/bincd ${SNPE_ROOT_PATH}/inception_v3snpe-net-run \--container inception_v3_quantized.dlc \--input_list target_raw_list.txt-------------------------------------------------------------------------------
Model String: N/A
SNPE v2.21.0.240401120655_85612
-------------------------------------------------------------------------------
Processing DNN input(s):
cropped/notice_sign.raw
Processing DNN input(s):
cropped/trash_bin.raw
Processing DNN input(s):
cropped/chairs.raw
Processing DNN input(s):
cropped/plastic_cup.raw
Successfully executed!
  • 运行结果

具体输出在output目录下,可以使用adb导出。

如果是在windows上,最好用tar打包出来。

adb pull /data/local/snpe/inception_v3/output output_linux
  • 检查运行结果
cd snpe-2.21.0/examples/Models/InceptionV3python3 scripts/show_inceptionv3_classifications_snpe.py \-i data/target_raw_list.txt \-o output_linux/ \-l data/imagenet_slim_labels.txtcropped/notice_sign.raw 0.140213 459 brass
cropped/trash_bin.raw   0.772629 413 ashcan
cropped/chairs.raw      0.301875 832 studio couch
cropped/plastic_cup.raw 0.976873 648 measuring cup

对比在UBUNTU上的结果,有所差异。

http://www.dtcms.com/a/350328.html

相关文章:

  • vite + react + tailwind(2025-08-25)
  • C++贪吃蛇---详细步骤
  • 2.4 Flink运行时架构:Task、SubTask、ExecutionGraph的关系
  • OPcache 高级技术文档:原理、监控与优化实践
  • Unity使用Sprite切割大图
  • JavaScript 性能优化实战:从理论到落地的技术文章大纲
  • 基于长短期记忆网络的多变量时间序列预测 LSTM
  • Redis 哨兵 Sentinel
  • 【沉浸式解决问题】NVIDIA 显示设置不可用。 您当前未使用连接到NVIDIA GPU 的显示器。
  • 实时监测蒸汽疏水阀的工作状态的物联网实时监控平台技术解析
  • VLLM的加速原理
  • 基于MATLAB实现支持向量机(SVM)进行预测备
  • 大模型的多机多卡训练
  • 神经网络|(十五)概率论基础知识-协方差标准化和皮尔逊相关系数
  • 亚马逊AWD美西新仓上线:旺季备货的效率革命与策略升级
  • 真实应急响应案例记录
  • 机器学习笔记
  • Neumann Networks for Linear Inverse Problems in Imaging论文阅读
  • CF2133D 鸡骑士
  • 基于遗传算法优化BP神经网络的时间序列预测 GA-BP
  • PNP机器人介绍:全球知名具身智能/AI机器人实验室介绍之多伦多大学机器人研究所
  • DeepSeek 14B模型本地部署与预训练实现方案
  • jsvmp是什么,如何使用
  • 入门Ubuntu操作系统
  • 深度学习:从手写数字识别案例认识pytorch框架
  • 用 GSAP + ScrollTrigger 打造沉浸式视频滚动动画
  • 《零基础学 C 语言文件顺序读写:fputc/fgetc 到 fread/fwrite 函数详解》
  • 并行算法与向量化指令集的实战经验
  • 【Linux内核实时】实时互斥锁 - sched_rt_mutex
  • 寂静之歌 单机+联机(Songs Of Silence)免安装中文版