目录
- 前言
- 一、完成Linux 本地编译环境的准备
- 1. 下载安装patchelf
- 2. 下载安装cmake
- 二、源码编译
- 1. 下载Paddle-Lite 源码
- 2. 编译Paddle-Lite 预测库
- 3. 安装Paddle-Lite
- 4. 直接安装whl文件
前言
最近在学习PaddlePaddle,并且需要把训练好的模型部署在树莓派上。
Paddle-Lite简介:
Lite是一种轻量级、灵活性强、易于扩展的高性能的深度学习预测框架,它可以支持诸如ARM、OpenCL、NPU等等多种终端。
由于PaddlePaddle是不支持ARM架构CPU的,所以我们在树莓派上只可以安装Paddle-Lite。
同时我们可以从其官网了解到,树莓派安装Paddle-Lite只可以使用本地源码编译的方式。
P.S. 除了下载源码并编译之外,我们也可以直接下载编译好的
whl
包并安装即可。
paddlelite 2.8.0:paddlelite2.8版本whl文件
也有2.6.0版本的paddlelite.whl
包提供下载:
https://download.csdn/download/weixin_40973138/15929619
安装方式:
将whl文件下载至树莓派,然后执行pip install paddlelite-2.6.0-xxx.whl
即可(详见下文)。
我的整个安装过程所参考的文章:
- 本地编译ARM Linux(直接在RK3399或树莓派上编译)
- 源码编译 (ARMLinux)
- 树莓派4b学习笔记六:以源码编译的方式安装Paddlelite
接下来就开始吧!
一、完成Linux 本地编译环境的准备
这部分主要是安装一些基础的软件,用于完成Linux 本地编译环境的准备。
注意:本编译方法暂时只适用于ARM的设备
1. 下载安装patchelf
安装patchelf:
sudo apt install patchelf
然后更新一下目录:
sudo apt-get update
升级安装:
sudo apt-get install -y
-y
的作用是对后续的操作都选择yes
。
gcc g++ make wget python unzip patchelf python-dev
2. 下载安装cmake
下载cmake压缩包并解压:
wget https://cmake/files/v3.20/cmake-3.20.0-rc4.tar.gz
tar -zxvf cmake-3.20.0-rc4.tar.gz
然后进行一些配置:
cd cmake-3.20.0-rc4
./configure
此处若出现
Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_LIBRARIES OPENSSL_INCLUDE_DIR)
这种错误。
可输入(安装OpenSSL的编译依赖):sudo apt-get install libssl-dev
开始编译:
make
至此,输出结果应该是这样的:
然后安装:
sudo make install
输出结果:
查看cmake版本以验证安装成功:
cmake --version
本地编译环境的准备完成。
二、源码编译
1. 下载Paddle-Lite 源码
首先下载Paddle-Lite源码:
在此,我选择从Gitee上面下载,因为我这GitHub实在干不动~~
git clone https://gitee/paddlepaddle/paddle-lite.git
如果你想从GitHub下载,只需要将上述链接替换成
https://github/PaddlePaddle/Paddle-Lite.git
源码下载完成后将其中的third-party 目录删除,这将使得编译脚本自动从国内CDN下载第三方库文件:
cd paddle-lite
git checkout release/v2.8
rm -rf third-party
注意:在此我选择将默认的4线程编译切换成单线程编译,因为我怀疑4线程编译的多次失败是树莓派的配置较低所导致。
export LITE_BUILD_THREADS=1
2. 编译Paddle-Lite 预测库
./lite/tools/build_linux.sh --arch=armv7hf --with_python=ON
上述指令有多种参数配置,你可以按照你的实际需求进行配置:
--arch: (armv8|armv7|armv7hf) arm版本,默认为armv8
--toolchain: (gcc|clang) 编译器类型,默认为gcc
--with_extra: (OFF|ON) 是否编译OCR/NLP模型相关kernel&OP,默认为OFF,只编译CV模型相关kernel&OP
--with_python: (OFF|ON) 是否编译python预测库, 默认为 OFF
--python_version: (2.7|3.5|3.7) 编译whl的Python版本,默认为 None
--with_cv: (OFF|ON) 是否编译CV相关预处理库, 默认为 OFF
--with_log: (OFF|ON) 是否输出日志信息, 默认为 ON
--with_exception: (OFF|ON) 是否在错误发生时抛出异常,默认为 OFF
P.S. 一开始我除了--arch
和--with_python
外也有配置其他参数,但失败了很多次后,我就把参数精简到这两个,尽量排除因为其他参数而导致错误的可能。
编译成功:
3. 安装Paddle-Lite
首先贴上编译后的文件结构树状图:
inference_lite_lib.armlinux.armv8
├── cxx C++ 预测库和头文件
│ ├── include C++ 头文件
│ │ ├── paddle_api.h
│ │ ├── paddle_image_preprocess.h
│ │ ├── paddle_lite_factory_helper.h
│ │ ├── paddle_place.h
│ │ ├── paddle_use_kernels.h
│ │ ├── paddle_use_ops.h
│ │ └── paddle_use_passes.h
│ └── lib C++ 预测库
│ ├── libpaddle_api_light_bundled.a C++ 静态库
│ └── libpaddle_light_api_shared.so C++ 动态库
├── demo
│ └── python Python 预测库demo
│
└── python Python 预测库(需要打开with_python选项)
├── install
│ └── dist
│ └── paddlelite-*.whl Python whl包
└── lib
└── lite.so Python 预测库
我们的目标文件是paddlelite-*.whl
,对其进行安装:
最后验证一下paddlelite 是否可以import:
大功告成。
4. 直接安装whl文件
注意:下列仅展示安装2.6版本的paddlelite,文件夹里面有2.8版本的paddlelite,安装方法与下同。
若上述方式始终不能顺利安装,那就直接安装whl
文件吧。
首先把whl文件下载至树莓派:
然后执行安装命令:pip install paddlelite-2.6.0-cp37-cp37m-linux_armv7l.whl
通过pip list
可以查看paddlelite的安装版本:
安装成功!
更多推荐
【超详细】树莓派4B 安装Paddle-Lite 2.8.0
发布评论