最近在学习使用百度推出的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的安装。
- 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则此处需要注意删去或者是安装你想要的版本。
- 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以下的版本编译源码的时候会出错。
- 下载 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
- (可选) 删除 third-party 目录,编译脚本会自动从国内 CDN 下载第三方库文件
#rm -rf third-party
- 编译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
- 验证编译结果
按上述脚本参数执行之后,成功后会在 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
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/116925.html