百度飞桨笔记:树莓派4B源码编译安装Paddle-Lite

  最近在学习使用百度推出的PaddlePaddle开源的深度学习平台,在PC上测试了demo之后,打算将其在嵌入式端也跑起来,所以选用了树莓派4B着手搭建相关开发环境。Paddle Lite是飞桨基于Paddle Mobile全新升级推出的端侧推理引擎,在多硬件、多平台以及硬件混合调度的支持上更加完备,为包括手机在内的端侧场景的AI应用提供高效轻量的推理能力,有效解决手机算力和内存限制等问题,致力于推动AI应用更广泛的落地。援引官方的介绍:

Paddle Lite 是一组工具,可帮助开发者在移动设备、嵌入式设备和 loT 设备上运行模型,以便实现设备端机器学习。
主要特性
支持多平台:涵盖 Android、iOS、嵌入式 Linux 设备、Windows、macOS 和 Linux 主机
支持多种语言:包括Java、Python、C++
轻量化和高性能:针对移动端设备的机器学习进行优化,压缩模型和二进制文件体积,高效推理,降低内存消耗

  在windows中我们可以直接通过pip管理工具进行PaddlePaddle的安装,在树莓派平台上只能通过源码进行编译安装。官方平台所提供的编译安装指南传送门如下:Paddle-Lite在ARM Linux 环境下编译适用于 ARM Linux 的库

硬件 树莓派4B
操作系统 Raspbian GNU/Linux 10
内核版本 5.4.83-v7l
ARM版本 armv7hf

  编译环境准备,Paddle-Lite适用于基于 ARMv8 和 ARMv7 架构 CPU 的各种开发板,例如 RK3399,树莓派等,目前支持交叉编译和本地编译两种方式。依赖于:gcc、g++、git、make、wget、python、pip、python-dev、patchelf、cmake(建议使用 3.10 或以上版本),下文将采用本地编译的方式进行Paddle-Lite的安装。

  1. Install basic software
apt update
apt-get install -y --no-install-recommends \
  gcc g++ make wget python unzip patchelf python-dev

需要注意的是树莓派已经默认安装了python3.7,官方指南这里的python 以及python-dev指的是python2的版本,如若后续开发使用的是python3则此处需要注意删去或者是安装你想要的版本。

  1. install cmake 3.10 or above
wget https://www.cmake.org/files/v3.10/cmake-3.10.3.tar.gz
tar -zxvf cmake-3.10.3.tar.gz
cd cmake-3.10.3
./configure
make
sudo make install

cmake需要安装3.10以上的版本,亲测3.10以下的版本编译源码的时候会出错。

  1. 下载 Paddle Lite 源码并切换到发布分支,如 release/v2.10
git clone https://github.com/PaddlePaddle/Paddle-Lite.git
#若从github上下载太慢了的话可以尝试从gitee上下载:
#git clone https://gitee.com/paddlepaddle/paddle-lite.git
cd Paddle-Lite && git checkout release/v2.10
  1. (可选) 删除 third-party 目录,编译脚本会自动从国内 CDN 下载第三方库文件
#rm -rf third-party
  1. 编译Paddle-Lite
    首先来了解一下相关的编译参数:
参数 说明 可选范围 默认值
arch 目标硬件的架构版本 armv8 / armv7hf / armv7 armv8
toolchain C++ 语言的编译器工具链 gcc gcc
with_python 是否包含 python 编译包,目标应用程序是 python 语言时需配置为 ON OFF / ON OFF
with_cv 是否将 cv 函数加入编译包中 OFF / ON OFF
with_log 是否在执行过程打印日志 OFF / ON ON
with_exception 是否开启 C++ 异常 OFF / ON OFF
with_extra 是否编译完整算子(见支持算子一节) OFF / ON OFF
with_profile 是否打开执行耗时分析 OFF / ON OFF
with_precision_profile 是否打开逐层精度结果分析 OFF / ON OFF
with_opencl 是否编译支持 OpenCL 的预测库 OFF / ON OFF

可通过打印 help 信息,查看更多编译选项

./lite/tools/build_linux.sh help

执行编译脚本

./lite/tools/build_linux.sh --arch=armv7hf --with_python=ON --with_cv=ON
  1. 验证编译结果
    按上述脚本参数执行之后,成功后会在 Paddle-Lite//build.lite.linux.armv7hf.gcc/inference_lite_lib.armlinux.armv7hf/ 生成 Paddle Lite 编译包,文件目录如下:
    在这里插入图片描述
    编译完成之后我们在之后基于Paddle-Lite使用python开发的话我们需要找到 paddlelite-685c9fc89-cp37-cp37m-linux_armv7l.whl这个文件,文件名可能不相同,只要是该目录下名为paddlelite- * .whl的即可。路径如下所示,然后使用pip install paddlelite- * .whl直接安装即可。安装好之后,检验安装是否成功。
./build.lite.linux.armv7hf.gcc/inference_lite_lib.armlinux.armv7hf/python/install/dist

在这里插入图片描述
在这里插入图片描述
  至此,Paddle-Lite在树莓派上的安装就算告一段落了,接下来将使用官方提供的demo进行相关性能的测试。

猜你喜欢

转载自blog.csdn.net/qq_33475105/article/details/122490301