最近在学习使用百度推出的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/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/PaddlePaddle/Paddle-Lite.git
#若从github上下载太慢了的话可以尝试从gitee上下载:
#git clone https://gitee/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 / armv7armv8
toolchainC++ 语言的编译器工具链gccgcc
with_python是否包含 python 编译包,目标应用程序是 python 语言时需配置为 ONOFF / ONOFF
with_cv是否将 cv 函数加入编译包中OFF / ONOFF
with_log是否在执行过程打印日志OFF / ONON
with_exception是否开启 C++ 异常OFF / ONOFF
with_extra是否编译完整算子(见支持算子一节)OFF / ONOFF
with_profile是否打开执行耗时分析OFF / ONOFF
with_precision_profile是否打开逐层精度结果分析OFF / ONOFF
with_opencl是否编译支持 OpenCL 的预测库OFF / ONOFF

可通过打印 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进行相关性能的测试。

更多推荐

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