恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

Paddle Lite ARM CPU C++ 推理部署实战指南:以 MobileNetV3 为例

  • 首页
  • 资讯中心
  • /
  • Paddle Lite ARM CPU C++ 推理部署实战指南:以 MobileNetV3 为例

相关资讯

codeforces-go 实战解析 LeetCode 2087:网格中机器人回家的最小代价与贪心分解 2026/10/9 2:33:00
XCOM调试工具初体验 2026/10/9 2:33:00
Webiny UseCase 模式实战指南:DI 抽象、Result 错误处理与 CMS 仓储落地的完整实现规范 2026/10/9 2:33:00

最新资讯

Claude Opus 5.5 震撼发布:AI 竞争下半场,真正的护城河在哪?
API聚合平台解析2026:技术原理、选型标准、主流平台与接入
MFC工业软件换上4K屏后界面模糊?BCGControlBar Pro如何适配高DPI与多屏
画质旗舰硬碰硬:索尼电视7系二代对比海信E8S,真体验比数字更值钱
基于微信小程序的智能拍卖系统设计与实现复盘
不用编程不用组态,快速实现汇川 EVO系列PLC通过CIP/EIP协议与西门子PLC之间标签方式数据通讯

今日推荐

AI编程智能体实战:从写代码到指挥代码的架构与落地
多模态大模型全栈能力拆解:从数据对齐到弹性推理
大模型Agent开发入门:从工具调用循环到落地避坑指南

本周热门

MR25H40CDF + PIC18F65K40:工业记录仪高可靠存储实战
基于STM32的数控恒压恒流电源设计:从硬件到PID调参全解析
LT9211 MIPI重定时器原理与双路扇出实战指南

本月精选

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)

Paddle Lite ARM CPU C++ 推理部署实战指南:以 MobileNetV3 为例

发布时间:2026/10/9 2:33:00
Paddle Lite ARM CPU C++ 推理部署实战指南:以 MobileNetV3 为例 人工智能深度学习计算机视觉NLP语音【免费下载链接】modelsOfficially maintained, supported by PaddlePaddle, including CV, NLP, Speech, Rec, TS, big models and so on.项目地址https://gitcode.com/gh_mirrors/mo/models点击查看免费下载导读本文以本仓库 tutorials/tipc/lite_infer_cpp_arm_cpu/lite_infer_cpp_arm_cpu.md 为核心骨架系统讲解如何在 ARM CPUAndroid / ArmLinux设备上使用 Paddle Lite 完成深度学习模型的端侧 C 推理部署。文章将覆盖导出 inference model → opt 工具优化生成 .nb 模型 → 编写预处理 / 推理 / 后处理程序 → 交叉编译与 adb 部署 → 与训练框架结果对拍核验的完整链路并基于仓库中 MobileNetV3 的完整实现源码、配置、Makefile、TIPC 自动化测试脚本逐环节深入帮助读者掌握一套可复制、可验证的 ARM CPU 推理部署方案。上图中的步骤 2生成 .nb 部署模型与步骤 7验证推理结果正确性是流程中的两个核验点必须确保通过。1. 简介为什么在 ARM CPU 上部署要选择 Paddle LitePaddle Lite 是一个轻量级、灵活性强、易于扩展的高性能深度学习预测框架专门面向移动端与嵌入式端设计。它可以支持 ARM、OpenCL、NPU 等多种终端硬件同时拥有强大的图优化及预测加速能力包含量化、子图融合、Kernel 优选等优化手段。因此在 ARM CPU 设备如 Android 手机、ArmLinux 开发板上部署深度学习模型时Paddle Lite 是一个成熟的选择。从开发者的角度看将 Paddle Lite 集成到自己的项目中只需导出模型 → 优化模型 → 编写推理程序几步简单操作。本文后续所有环节均以仓库中完整的 MobileNetV3 图像分类端侧部署案例位于 tutorials/mobilenetv3_prod/Step6/deploy/lite_infer_cpp_arm_cpu为实操蓝本展开。2. 使用 Paddle Lite 在 ARM CPU 上的部署流程部署流程可概括为以下七个环节其中环节 2 与环节 7 为核验点准备推理数据与环境准备推理模型导出 inference model并使用 opt 工具优化生成.nb模型准备推理所需代码Paddle Lite 预测库、推理应用程序、Makefile开发数据预处理程序开发推理程序开发推理结果后处理程序验证推理结果正确性。下面逐一展开。2.1 准备推理数据与环境推理环境开发机器一台开发机可以是 x86 Linux 或 Mac 设备用于安装开发环境、导出与优化模型、交叉编译示例程序推理设备一台可连接到开发机的 ARM CPU 设备系统可以是 Android 或 ArmLinux本文以 Android armv8 为例。开发机上安装开发环境以及对推理设备的配置完整参考 Mobilenet_v3 基于 ARM CPU 部署教程 中的准备编译环境与在 Android 手机上部署章节本仓库中给出了可直接执行的 Ubuntu 环境安装命令序列gcc/g、jdk、CMake 3.10.3、Android NDK r17c并设置NDK_ROOT环境变量。推理数据一张可用于推理的图片仓库示例为 demo.jpg用于前处理的配置文件可选与前处理相关config.txt用于推理结果后处理相关的 label 文件可选与后处理相关imagenet1k_label_list.txt。2.2 准备推理模型第一步导出 inference modelPaddle Lite 框架直接支持 PaddlePaddle 深度学习框架产出的模型静态图模式下使用save_inference_modelAPI 保存预测模型Paddle Lite 对此类预测模型已做充分支持动态图模式下使用paddle.jit.saveAPI 保存预测模型Paddle Lite 可以支持绝大部分此类预测模型。获取 inference model 有两种方式直接下载官方提供的 MobileNetV3 inference model 压缩包通过预训练模型导出使用本仓库 tutorials/mobilenetv3_prod/Step6/tools 目录下的export_model.py工具在tutorials/mobilenetv3_prod/Step6目录下执行python ./tools/export_model.py --pretrained./mobilenet_v3_small_pretrained.pdparams --save-inference-dir./mobilenet_v3_small_infer导出成功后在mobilenet_v3_small_infer文件夹下应包含inference.pdmodel、inference.pdiparams和inference.pdiparams.info三个文件。第二步使用 opt 工具优化模型Paddle Lite 框架拥有优秀的加速、优化策略及实现包含量化、子图融合、Kernel 优选等优化手段。优化后的模型更轻量级、耗费资源更少、执行速度更快。这些优化通过 Paddle Lite 提供的opt 工具实现opt 工具还可以统计并打印模型中的算子信息判断不同硬件平台下 Paddle Lite 的支持情况。opt 工具提供两种使用方式Python 脚本方式适用于 Python 3.5 / 3.6 / 3.7先pip3 install paddlelite2.10再调用本仓库提供的转换脚本 export_lite_model.pypython export_lite_model.py --model-file./mobilenet_v3_small_infer/inference.pdmodel \ --param-file./mobilenet_v3_small_infer/inference.pdiparams \ --optimize-out./mobilenet_v3_small从脚本源码可以看到其核心逻辑创建Opt()对象通过set_model_file/set_param_file指定输入模型set_valid_places(arm)指定目标平台set_model_type(naive_buffer)指定保存格式set_optimize_out指定输出前缀最后调用opt.run()完成优化转换对应 export_lite_model.py。终端命令方式下载官方 opt 工具可执行文件如opt_linux/opt_mac执行./opt --model_file./mobilenet_v3_small_infer/inference.pdmodel \ --param_file./mobilenet_v3_small_infer/inference.pdiparams \ --optimize_out./mobilenet_v3_small两种方式执行完毕后在当前文件夹下都会生成mobilenet_v3_small.nb文件。核验点①本步骤需要核验是否有xxx.nb模型生成即 NaiveBuffer 格式的优化后模型这是后续部署程序的加载输入。2.3 准备推理所需代码部署 ARM CPU 端推理程序需要三部分代码/文件Paddle Lite 预测库官方为Android/IOS/ArmLinux/Windows/MacOS/Ubuntu平台提供了 Release 预编译库优先推荐直接下载 v2.10 的预编译包也可以根据目标平台选择源码编译Paddle Lite 源码提供了编译脚本位于lite/tools/文件夹下准备好环境后即可运行如 Android 平台执行./lite/tools/build_android.sh用户的推理应用程序例如 mobilenet_v3.ccMakefile用于编译应用程序。以仓库中的 mobilenet_v3 文件夹为例准备好部署所需的全部文件后目录结构如下mobilenet_v3/ 示例文件夹 ├── inference_lite_lib.android.armv8/ Paddle Lite C 预测库和头文件 │ ├── Makefile 编译相关 │ ├── Makefile.def 编译相关 │ ├── mobilenet_v3_small.nb 优化后的模型 │ ├── mobilenet_v3.cc C 示例代码 │ ├── demo.jpg 示例图片 │ ├── imagenet1k_label_list.txt 示例label(用于后处理) │ └── config.txt 示例config(用于前处理)编译时在mobilenet_v3文件夹下执行make即可编译过程会下载 OpenCV 第三方库需要连接网络编译完成后生成mobilenet_v3可执行文件。需要注意 Makefile 中LITE_ROOT./inference_lite_lib.android.armv8需要改成你自己的预测库文件夹名Makefile 默认链接libpaddle_light_api_shared.so动态库如需使用静态库可切换到libpaddle_api_light_bundled.a。2.4 开发数据预处理程序Paddle Lite 推理框架的输入不能直接是图片因此需要对图片进行预处理一般包括opencv 读取、resize、crop、归一化等操作之后才能得到输入给推理框架的数据。仓库中的 mobilenet_v3.cc 给出了完整的预处理实现核心包括ResizeImagemobilenet_v3.cc#L121-L138保持宽高比将图片短边缩放到resize_short_size配置为 256CenterCropImgmobilenet_v3.cc#L140-L150从缩放后图片的中心裁剪出crop_size配置为 224大小的正方形区域类型转换与归一化crop_image.convertTo(img_fp, CV_32FC3, 1.0/255.0)将图像转为浮点并缩放到[0,1]然后使用 ImageNet 的 mean/scalemean{0.485, 0.456, 0.406}scale{1/0.229, 1/0.224, 1/0.225}执行归一化NeonMeanScalemobilenet_v3.cc#L78-L119使用 ARM NEON 指令vld3q_f32/vsubq_f32/vmulq_f32等并行完成 HWC 转 NCHW 布局 减均值乘 scale 的归一化操作利用 SIMD 加速前处理。在 main 函数中图片先经cv::imread(img_path, cv::IMREAD_COLOR)读取并cv::cvtColor(..., COLOR_BGR2RGB)转为 RGBmobilenet_v3.cc#L337-L338随后进入RunClasModel完成上述预处理流程。前处理的尺寸、均值等超参数通过 config.txt 控制完整配置如下clas_model_file /data/local/tmp/arm_cpu/mobilenet_v3_small.nb label_path /data/local/tmp/arm_cpu/imagenet1k_label_list.txt resize_short_size 256 crop_size 224 visualize 0 num_threads 1 batch_size 1 precision FP32 runtime_device arm_cpu enable_benchmark 0 tipc_benchmark 1其中resize_short_size与crop_size直接决定预处理行为visualize控制是否保存可视化结果图片clas_result.pngenable_benchmark控制是否跑 1000 次迭代做性能统计开启时为 1000 次否则 1 次tipc_benchmark控制是否输出 TIPC 自动化测试所需的 AutoLog 性能信息。2.5 开发推理程序使用 Paddle Lite 的 C API 只需简单五步即可完成预测声明MobileConfig设置第二步优化后的模型文件路径或选择从内存中加载模型创建Predictor调用CreatePaddlePredictor接口一行代码即可完成引擎初始化准备输入通过predictor-GetInput(i)获取输入变量并为其指定输入大小和输入值执行预测运行predictor-Run()一行代码即完成预测执行获得输出使用predictor-GetOutput(i)获取输出变量并通过dataT取得输出值。官方文档给出的核心示例代码如下#include iostream // 引入 C API #include paddle_lite/paddle_api.h #include paddle_lite/paddle_use_ops.h #include paddle_lite/paddle_use_kernels.h // 1. 设置 MobileConfig MobileConfig config; config.set_model_from_file(modelPath); // 设置 NaiveBuffer 格式模型路径 config.set_power_mode(LITE_POWER_NO_BIND); // 设置 CPU 运行模式 config.set_threads(4); // 设置工作线程数 // 2. 创建 PaddlePredictor std::shared_ptrPaddlePredictor predictor CreatePaddlePredictorMobileConfig(config); // 3. 设置输入数据,可以在这里进行您的前处理比如用opencv读取图片等。这里为全一输入。 std::unique_ptrTensor input_tensor(std::move(predictor-GetInput(0))); input_tensor-Resize({1, 3, 224, 224}); auto* data input_tensor-mutable_datafloat(); for (int i 0; i ShapeProduction(input_tensor-shape()); i) { data[i] 1; } //其他前处理 // 4. 执行预测 predictor-run(); // 5. 获取输出数据 std::unique_ptrconst Tensor output_tensor(std::move(predictor-GetOutput(0))); std::cout Output shape output_tensor-shape()[1] std::endl; for (int i 0; i ShapeProduction(output_tensor-shape()); i 100) { std::cout Output[ i ]: output_tensor-datafloat()[i] std::endl; } //后处理仓库实现中模型加载被封装为LoadModel函数mobilenet_v3.cc#L223-L230构建MobileConfig后调用config.set_model_from_file(model_file)指定.nb模型路径再通过CreatePaddlePredictorMobileConfig(config)得到std::shared_ptrPaddlePredictor。实际推理时通过predictor-GetInput(0)拿到输入 TensorResize({1, 3, img_fp.rows, img_fp.cols})指定 NCHW 维度mutable_datafloat()写入预处理后的像素数据随后调用predictor-Run()执行前向再通过predictor-GetOutput(0)与datafloat()读取分类得分mobilenet_v3.cc#L172-L188。2.6 开发推理结果后处理程序后处理主要处理 Paddle Lite 推理框架的输出tensor包括选取哪个tensor、以及根据label文件获得预测类别。仓库中的PostProcess函数mobilenet_v3.cc#L35-L75实现了完整的 Top-5 后处理设定TOPK 5在输出得分向量上维护一个大小为 5 的 top 索引与得分集合遍历全部类别得分得到置信度最高的 5 个结果将类别索引映射到imagenet1k_label_list.txt中对应的类别名称label 文件通过LoadLabels读取每行包含class_id与类别名将 Top-5 结果写入输出图片cv::putText标注类别名与得分在visualize开启时保存为clas_result.png。main 函数中以如下格式打印结果mobilenet_v3.cc#L345-L351clas result for image: img_path Top-1, class_id: 8, class_name: hen, score: 0.901639 Top-2, class_id: 7, class_name: cock, score: 0.0970001 ...2.7 验证推理结果正确性Paddle Lite 的推理结果需要和训练框架的预测结果对比是否一致。注意此过程中需要首先保证前处理和后处理与训练代码是一致的。仓库给出了具体核验方法在tutorials/mobilenetv3_prod/Step6目录下运行训练侧预测工具 predict.pypython tools/predict.py --pretrained./mobilenet_v3_small_paddle_pretrained.pdparams --img-pathimages/demo.jpg训练框架输出为class_id: 8, prob: 0.9091238975524902即预测类别 ID 为 8hen母鸡置信度约 0.909而 Paddle Lite 端侧输出 Top-1 为class_id: 8, class_name: hen, score: 0.901639。两者类别一致、置信度仅有微小差距该差距来源于 Paddle Lite 所用 OpenCV 与训练所用 PIL 在前处理上的微小差别。核验点②Paddle Lite 端侧推理结果与训练框架预测结果的类别必须一致允许置信度存在由前处理库差异导致的微小偏差核验通过即代表端侧部署全链路正确。3. Android 手机上的完整部署实操将上述程序真正跑在 Android 手机上需要完成环境安装 → 编译 → push 到设备 → 运行四个阶段完整命令见 部署教程 README。编译环境准备以 Ubuntu 为例需 root 权限安装gcc/g推荐 8.2.0、git/make/wget/python/adb等基础软件安装default-jdk安装CMake 3.10.3其他版本可能有兼容性问题导致编译不通过下载Android NDK r17cndk-r17c 及之后版本均支持注意从 ndk-r18 开始 NDK 交叉编译工具仅支持 Clang、不支持 GCC并将NDK_ROOT指向 NDK 安装路径。获取预测库推荐直接使用 Paddle Lite v2.10 预编译包本教程需要static库例如inference_lite_lib.android.armv8.clang.c_static.with_extra.with_cv解压后重命名为inference_lite_lib.android.armv8或通过./lite/tools/build_android.sh源码编译产物同样位于inference_lite_lib.android.armv8/下包含cxx/includepaddle_api.h、paddle_use_ops.h、paddle_use_kernels.h等头文件与cxx/liblibpaddle_api_light_bundled.a静态库、libpaddle_light_api_shared.so动态库。编译示例程序在 mobilenet_v3 文件夹下执行make注意 Makefile 中LITE_ROOT需指向你的预测库目录。连接手机并部署需开启 USB 调试adb devices确认设备在线# 假设当前位于 mobilenet_v3 目录下 # 1. 在手机上创建工作目录 adb shell mkdir -p /data/local/tmp/arm_cpu/ # 2. push 可执行文件与动态库到设备 adb push mobilenet_v3 /data/local/tmp/arm_cpu/ adb shell chmod x /data/local/tmp/arm_cpu/mobilenet_v3 adb push inference_lite_lib.android.armv8/cxx/lib/libpaddle_light_api_shared.so /data/local/tmp/arm_cpu/ # 3. push 优化后的 nb 模型 adb push ./mobilenet_v3_small.nb /data/local/tmp/arm_cpu/ # 4. push config、label 与图片 adb push ./config.txt /data/local/tmp/arm_cpu/ adb push ./imagenet1k_label_list.txt /data/local/tmp/arm_cpu/ adb push ./demo.jpg /data/local/tmp/arm_cpu/ # 5. 在设备上运行 demo注意导出 LD_LIBRARY_PATH 指向动态库所在目录 adb shell export LD_LIBRARY_PATH/data/local/tmp/arm_cpu/; \ /data/local/tmp/arm_cpu/mobilenet_v3 \ /data/local/tmp/arm_cpu/config.txt \ /data/local/tmp/arm_cpu/demo.jpg运行成功后会输出 Top-5 分类结果clas result for image: /data/local/tmp/arm_cpu/demo.jpg Top-1, class_id: 8, class_name: hen, score: 0.901639 Top-2, class_id: 7, class_name: cock, score: 0.0970001 Top-3, class_id: 86, class_name: partridge, score: 0.000225853 Top-4, class_id: 80, class_name: black grouse, score: 0.0001647 Top-5, class_id: 21, class_name: kite, score: 0.000128394代表在 Android 手机上推理部署完成。4. TIPC 自动化一键跑通 Lite cpp arm cpu 推理功能测试除手工部署外本仓库还提供了训推一体全流程TIPC自动化测试方案覆盖 Lite arm cpu 下基于 C 语言的推理全流程功能测试核心测试点为模型推理过程跑通相关开发说明见 test_lite_infer_cpp_arm_cpu.md。4.1 测试工具组成自动化测试包含 2 个脚本文件和 1 个配置文件test_lite_arm_cpu_cpp.sh解析配置文件并执行 Lite arm cpu 模型推理测试的脚本该脚本无需修改prepare_lite_arm_cpu_cpp.sh准备测试需要的数据、Lite 模型、Lite 预测库等lite_arm_cpu_cpp.txt配置文件会被test_lite_arm_cpu_cpp.sh解析成具体的执行命令字段。参考配置文件见 lite_arm_cpu_cpp.txt。4.2 配置文件解析完整的lite_arm_cpu_cpp.txt配置文件共有 8 行包含两方面内容第 15 行为推理基础配置模型路径、预测库路径等第 68 行为推理参数配置线程数、batch-size 等。单行内容以冒号为分隔符可解析为key:value格式需要根据实际含义修改 value行号参考内容含义key 是否需要修改value 是否需要修改修改内容1runtime_device:arm_cpuLite 硬件设备类型否否无需修改内容2lite_arm_work_path:/data/local/tmp/arm_cpu/Lite 硬件设备的工作路径否是value 修改为 Lite 设备的实际工作路径3lite_arm_so_path:inference_lite_lib.android.armv8/cxx/lib/libpaddle_light_api_shared.soLite 预测库路径否是value 修改为实际的 Lite 预测库路径4clas_model_file:mobilenet_v3_small.nbLite 模型名字否是value 修改为自己的模型名字5inference_cmd:mobilenet_v3 config.txt demo.jpgLite 预测命令否是value 修改为实际的预测命令6--num_threads_list:1Lite 预测的线程数否是value 修改为预测的线程数7--batch_size_list:1Lite 预测的 batch size否是value 修改为实际推理的 batch-size8--precision_list:FP32精度类型否是value 修改为FP32或INT8test_lite_arm_cpu_cpp.sh会将配置文件中的相关参数重写到config.txt最终不同配置在 Lite 上运行的命令mobilenet_v3 config.txt demo.jpg完全一致具体参数信息均已在config.txt中体现。4.3 测试开发流程Lite infer cpp arm cpu 推理功能测试开发分 6 个步骤准备待测试的命令准备好模型推理命令后续映射到配置文件中。MobileNetV3 的推理示例命令为adb shell export LD_LIBRARY_PATH${lite_arm_work_path}; ${real_inference_cmd}其中${real_inference_cmd}在手机上执行如${lite_arm_work_path}/mobilenet_v3 ${lite_arm_work_path}/config.txt ${lite_arm_work_path}/demo.jpg。准备数据与环境准备一张 demo 图片push 到 Lite 设备的${lite_arm_work_path}目录本案例图片存放于tutorials/mobilenetv3_prod/Step6/images/下准备编译环境与 Paddle Lite 预测库参考 Mobilenet_v3 基于 ARM CPU 部署教程。准备开发所需脚本在 repo 中新建test_tipc目录将 prepare_lite_arm_cpu_cpp.sh 和 test_lite_arm_cpu_cpp.sh 拷贝到test_tipc目录中。上述 2 个脚本文件无需改动实际使用时直接修改配置文件即可。填写配置文件在test_tipc/目录中新建configs/model_name将 lite_arm_cpu_cpp.txt 拷贝到该目录model_name修改为自己的模型名称各字段含义见上文配置解析表。验证配置正确性基于修改完的配置运行bash test_tipc/prepare_lite_arm_cpu_cpp.sh ${your_config_file} bash test_tipc/test_lite_arm_cpu_cpp.sh ${your_config_file}以 mobilenet_v3_small 为例bash test_tipc/prepare_lite_arm_cpu_cpp.sh test_tipc/configs/mobilenet_v3_small/lite_arm_cpu_cpp.txt bash test_tipc/test_lite_arm_cpu_cpp.sh test_tipc/configs/mobilenet_v3_small/lite_arm_cpu_cpp.txt运行成功会输出Run successfully with command - adb shell export LD_LIBRARY_PATH/data/local/tmp/arm_cpu/; /data/local/tmp/arm_cpu/mobilenet_v3 /data/local/tmp/arm_cpu/config.txt /data/local/tmp/arm_cpu/demo.jpg ./output/lite_mobilenet_v3_small.nb_runtime_device_arm_cpu_precision_FP32_batchsize_1_threads_1.log 21!成功日志中会打印参数设置信息运行设备、线程数等、模型信息模型名称、精度等、数据信息batchsize 等与性能信息预处理耗时、推理耗时、后处理耗时以 mobilenet_v3_small 为例可在./output/lite_mobilenet_v3_small.nb_runtime_device_arm_cpu_precision_FP32_batchsize_1_threads_1.log中查看。这些 AutoLog 信息由 mobilenet_v3.cc 中基于AutoLogger的autolog.report()输出。如果运行失败会输出具体的报错命令可据此排查配置文件的问题并修改例如Run failed with command - adb shell export LD_LIBRARY_PATH/data/local/tmp/arm_cpu/; /data/local/tmp/arm_cpu/mobilenet_v3 /data/local/tmp/arm_cpu/config.txt /data/local/tmp/arm_cpu/demo.jpg ./output/...log 21!撰写说明文档测试跑通后需要撰写 TIPC 功能总览文档与测试流程说明文档这也是核验的一部分可直接拷贝模板修改TIPC 功能总览文档模板README.mdLite cpp arm cpu 推理功能测试说明文档模板test_lite_infer_cpp_arm_cpu.md最终 repo 中test_tipc目录结构如下test_tipc |--configs # 配置目录 | |--model_name # 您的模型名称 | |--lite_arm_cpu_cpp.txt # lite_infer_cpp_arm_cpu推理测试配置文件 |--docs # 文档目录 | |--test_lite_infer_cpp_arm_cpu.md # lite_infer_cpp_arm_cpu推理测试说明文档 |----README.md # TIPC说明文档 |----prepare_lite_arm_cpu_cpp.sh # TIPC lite_infer_cpp_arm_cpu推理数据、模型、预测库准备脚本 |----test_lite_arm_cpu_cpp.sh # TIPC lite_infer_cpp_arm_cpu推理测试解析脚本无需改动5. FAQ 与问题排查3.1 通用问题编译问题确保 CMake 使用 3.10 版本其他版本可能有兼容性问题导致编译不通过Android NDK 建议 r17c 或之后版本注意 ndk-r18 起 NDK 交叉编译工具仅支持 Clang、不支持 GCC源码编译 Android 库前需确认环境变量NDK_ROOT指向正确的 NDK 安装路径。运行问题adb shell中运行程序前必须export LD_LIBRARY_PATH指向动态库libpaddle_light_api_shared.so所在目录否则会因找不到共享库而运行失败.nb模型、图片、config、label 文件都需要先 push 到设备工作路径下。结果差异问题端侧推理与训练框架结果存在微小置信度差距属于正常现象主要源于 OpenCV 与 PIL 前处理方式的微小差别若类别不一致则应优先核对前处理resize/crop/归一化参数与后处理label 映射是否与训练代码保持一致。进一步排查如果使用过程中遇到任何问题可查阅 Paddle Lite 官方文档或在 Paddle-Lite 仓库的 Issues 区提交问题。结语本文以 MobileNetV3 图像分类为例完整梳理了 Paddle Lite 在 ARM CPU 上从模型导出、opt 优化、C 推理程序开发到 Android 真机部署与 TIPC 自动化测试的整条链路。核心经验可以沉淀为三点其一.nb模型的生成是部署的第一道核验关口务必确认 opt 优化成功其二预处理与后处理必须与训练侧保持一致这是推理结果正确性核验第二道核验关口的前提其三借助仓库提供的prepare_lite_arm_cpu_cpp.shtest_lite_arm_cpu_cpp.shlite_arm_cpu_cpp.txt三件套可以将繁琐的 adb 手工部署流程一键自动化从而将这一套方案快速迁移到自己的模型上。赞分享人工智能深度学习计算机视觉NLP语音【免费下载链接】modelsOfficially maintained, supported by PaddlePaddle, including CV, NLP, Speech, Rec, TS, big models and so on.项目地址https://gitcode.com/gh_mirrors/mo/models点击查看免费下载相关推荐MobileNetV3 基于 Paddle Lite 的 ARM CPU 端侧部署实战从 inference model 到 Android 手机推理MobileNetV3 基于 Paddle Lite 的 ARM CPU 端侧部署实战从 inference model 到 Android 手机推理 本指南人工智能深度学习计算机视觉NLP语音Paddle-Lite ARM CPU C 推理功能测试TIPC基于 MobileNetV3 的端到端实操指南Paddle Lite ARM CPU C 推理功能测试TIPC基于 MobileNetV3 的端到端实操指南 引言什么是 Lite cpp arm人工智能深度学习计算机视觉NLP语音Paddle 服务器端 C 预测部署实战以 MobileNetV3-Small 图像分类为例Paddle 服务器端 C 预测部署实战以 MobileNetV3 Small 图像分类为例 本篇技术指南以 tutorials/mobilenetv3_人工智能深度学习计算机视觉NLP语音上一篇Outfit字体免费商用 9 字重加可变字体三步装好下一篇Rust By Example 变量冻结Freezing深入解析可变绑定的临时只读化机制创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号