Loading [Contrib]/a11y/accessibility-menu.js
You need to enable JavaScript to run this app. \u200E
x86
Paddle Lite 已支持在 x86 设备上进行预测部署。
支持现状
已验证支持的 Paddle 模型
模型
图像分类
目标检测
姿态检测
人脸检测
关键点检测
文本检测 & 文本识别 & 端到端检测识别
自然语言处理 & 语义理解
生成网络
推荐系统
图像分割
视频分类
开源模型支持列表
参考示例演示
运行图像分类示例程序
下载示例程序 PaddleLite-generic-demo.tar.gz ,解压后清单如下:
- PaddleLite-generic-demo
- image_classification_demo
- assets
- configs
- imagenet_224.txt # config 文件
- synset_words.txt # 1000 分类 label 文件
- datasets
- test # dataset
- inputs
- tabby_cat.jpg # 输入图片
- outputs
- tabby_cat.jpg # 输出图片
- list.txt # 图片清单
- models
- resnet50_fp32_224 # Paddle non-combined 格式的 resnet50 float32 模型
- __model__ # Paddle fluid 模型组网文件,可拖入 https://lutzroeder.github.io/netron/ 进行可视化显示网络结构
- bn2a_branch1_mean # Paddle fluid 模型参数文件
- bn2a_branch1_scale
...
- shell
- CMakeLists.txt # 示例程序 CMake 脚本
- build.linux.amd64 # 已编译好的,适用于 amd64
- demo # 已编译好的,适用于 amd64 的示例程序
- build.linux.arm64 # 已编译好的,适用于 arm64
- demo # 已编译好的,适用于 arm64 的示例程序
...
...
- demo.cc # 示例程序源码
- build.sh # 示例程序编译脚本
- run.sh # 示例程序本地运行脚本
- run_with_ssh.sh # 示例程序 ssh 运行脚本
- run_with_adb.sh # 示例程序 adb 运行脚本
- libs
- PaddleLite
- android
- arm64-v8a
- armeabi-v7a
- linux
- amd64
- include # Paddle Lite 头文件
- lib # Paddle Lite 库文件
- libpaddle_full_api_shared.so # 预编译 Paddle Lite full api 库
- libpaddle_light_api_shared.so # 预编译 Paddle Lite light api 库
- arm64
- include
- lib
- armhf
...
- OpenCV # OpenCV 预编译库
- object_detection_demo # 目标检测示例程序
进入 PaddleLite-generic-demo/image_classification_demo/shell/
;
执行以下命令观察 mobilenet_v1_int8_224_per_layer 模型的性能和结果;
运行 mobilenet_v1_int8_224_per_layer 模型
For linux amd64
本地执行
$ ./run.sh mobilenet_v1_int8_224_per_layer imagenet_224.txt test linux amd64 cpu
通过 SSH 远程执行
$ ./run_with_ssh.sh mobilenet_v1_int8_224_per_layer imagenet_224.txt test linux amd64 cpu <IP地址> 22 <用户名> <密码>
Top1 Egyptian cat - 0 .500662
Top2 tabby, tabby cat - 0 .407661
Top3 tiger cat - 0 .074697
Top4 lynx, catamount - 0 .013188
Top5 ping-pong ball - 0 .000638
Preprocess time: 27 .854000 ms, avg 27 .854000 ms, max 27 .854000 ms, min 27 .854000 ms
Prediction time: 55 .152000 ms, avg 55 .152000 ms, max 55 .152000 ms, min 55 .152000 ms
Postprocess time: 6 .212000 ms, avg 6 .212000 ms, max 6 .212000 ms, min 6 .212000 ms
如果需要更改测试模型为 resnet50,执行命令修改为如下:
本地执行
$ ./run.sh resnet50_fp32_224 imagenet_224.txt test linux amd64 cpu
通过 SSH 远程执行
$ ./run_with_ssh.sh resnet50_fp32_224 imagenet_224.txt test linux amd64 cpu <IP地址> 22 <用户名> <密码>
如果需要更改测试图片,可将图片拷贝到 PaddleLite-generic-demo/image_classification_demo/assets/datasets/test/inputs
目录下,同时将图片文件名添加到 PaddleLite-generic-demo/image_classification_demo/assets/datasets/test/list.txt
中;
如果需要重新编译示例程序,直接运行
For linux amd64
$ ./build.sh linux amd64
更新支持 x86 的 Paddle Lite 库
下载 Paddle Lite 源码
$ git clone https://github.com/PaddlePaddle/Paddle-Lite.git
$ cd Paddle-Lite
$ git checkout <release-version-tag>
编译并生成 x86 的部署库
For linux amd64
tiny_publish 编译
$ ./lite/tools/build_linux.sh --arch= x86
full_publish 编译
$ ./lite/tools/build_linux.sh --arch= x86 full_publish
替换头文件和库
替换 include 目录
$ cp -rf build.lite.linux.x86.gcc/inference_lite_lib/cxx/include/ PaddleLite-generic-demo/libs/PaddleLite/linux/amd64/include/
替换 libpaddle_full_api_shared.so
$ cp build.lite.linux.x86.gcc/inference_lite_lib/cxx/lib/libpaddle_full_api_shared.so PaddleLite-generic-demo/libs/PaddleLite/linux/amd64/lib/
替换 libpaddle_light_api_shared.so
$ cp build.lite.linux.x86.gcc/inference_lite_lib/cxx/lib/libpaddle_light_api_shared.so PaddleLite-generic-demo/libs/PaddleLite/linux/amd64/lib/
替换头文件后需要重新编译示例程序
Edit on Github 文档反馈
x86 — Paddle-Lite documentation
Paddle-Lite
x86
Paddle Lite 已支持在 x86 设备上进行预测部署。
支持现状
已验证支持的 Paddle 模型
模型
图像分类
目标检测
姿态检测
人脸检测
关键点检测
文本检测 & 文本识别 & 端到端检测识别
自然语言处理 & 语义理解
生成网络
推荐系统
图像分割
视频分类
开源模型支持列表
参考示例演示
运行图像分类示例程序
下载示例程序 PaddleLite-generic-demo.tar.gz ,解压后清单如下:
- PaddleLite-generic-demo
- image_classification_demo
- assets
- configs
- imagenet_224.txt # config 文件
- synset_words.txt # 1000 分类 label 文件
- datasets
- test # dataset
- inputs
- tabby_cat.jpg # 输入图片
- outputs
- tabby_cat.jpg # 输出图片
- list.txt # 图片清单
- models
- resnet50_fp32_224 # Paddle non-combined 格式的 resnet50 float32 模型
- __model__ # Paddle fluid 模型组网文件,可拖入 https://lutzroeder.github.io/netron/ 进行可视化显示网络结构
- bn2a_branch1_mean # Paddle fluid 模型参数文件
- bn2a_branch1_scale
...
- shell
- CMakeLists.txt # 示例程序 CMake 脚本
- build.linux.amd64 # 已编译好的,适用于 amd64
- demo # 已编译好的,适用于 amd64 的示例程序
- build.linux.arm64 # 已编译好的,适用于 arm64
- demo # 已编译好的,适用于 arm64 的示例程序
...
...
- demo.cc # 示例程序源码
- build.sh # 示例程序编译脚本
- run.sh # 示例程序本地运行脚本
- run_with_ssh.sh # 示例程序 ssh 运行脚本
- run_with_adb.sh # 示例程序 adb 运行脚本
- libs
- PaddleLite
- android
- arm64-v8a
- armeabi-v7a
- linux
- amd64
- include # Paddle Lite 头文件
- lib # Paddle Lite 库文件
- libpaddle_full_api_shared.so # 预编译 Paddle Lite full api 库
- libpaddle_light_api_shared.so # 预编译 Paddle Lite light api 库
- arm64
- include
- lib
- armhf
...
- OpenCV # OpenCV 预编译库
- object_detection_demo # 目标检测示例程序
进入 PaddleLite-generic-demo/image_classification_demo/shell/
;
执行以下命令观察 mobilenet_v1_int8_224_per_layer 模型的性能和结果;
运行 mobilenet_v1_int8_224_per_layer 模型
For linux amd64
本地执行
$ ./run.sh mobilenet_v1_int8_224_per_layer imagenet_224.txt test linux amd64 cpu
通过 SSH 远程执行
$ ./run_with_ssh.sh mobilenet_v1_int8_224_per_layer imagenet_224.txt test linux amd64 cpu <IP地址> 22 <用户名> <密码>
Top1 Egyptian cat - 0 .500662
Top2 tabby, tabby cat - 0 .407661
Top3 tiger cat - 0 .074697
Top4 lynx, catamount - 0 .013188
Top5 ping-pong ball - 0 .000638
Preprocess time: 27 .854000 ms, avg 27 .854000 ms, max 27 .854000 ms, min 27 .854000 ms
Prediction time: 55 .152000 ms, avg 55 .152000 ms, max 55 .152000 ms, min 55 .152000 ms
Postprocess time: 6 .212000 ms, avg 6 .212000 ms, max 6 .212000 ms, min 6 .212000 ms
如果需要更改测试模型为 resnet50,执行命令修改为如下:
本地执行
$ ./run.sh resnet50_fp32_224 imagenet_224.txt test linux amd64 cpu
通过 SSH 远程执行
$ ./run_with_ssh.sh resnet50_fp32_224 imagenet_224.txt test linux amd64 cpu <IP地址> 22 <用户名> <密码>
如果需要更改测试图片,可将图片拷贝到 PaddleLite-generic-demo/image_classification_demo/assets/datasets/test/inputs
目录下,同时将图片文件名添加到 PaddleLite-generic-demo/image_classification_demo/assets/datasets/test/list.txt
中;
如果需要重新编译示例程序,直接运行
For linux amd64
$ ./build.sh linux amd64
更新支持 x86 的 Paddle Lite 库
下载 Paddle Lite 源码
$ git clone https://github.com/PaddlePaddle/Paddle-Lite.git
$ cd Paddle-Lite
$ git checkout <release-version-tag>
编译并生成 x86 的部署库
For linux amd64
tiny_publish 编译
$ ./lite/tools/build_linux.sh --arch= x86
full_publish 编译
$ ./lite/tools/build_linux.sh --arch= x86 full_publish
替换头文件和库
替换 include 目录
$ cp -rf build.lite.linux.x86.gcc/inference_lite_lib/cxx/include/ PaddleLite-generic-demo/libs/PaddleLite/linux/amd64/include/
替换 libpaddle_full_api_shared.so
$ cp build.lite.linux.x86.gcc/inference_lite_lib/cxx/lib/libpaddle_full_api_shared.so PaddleLite-generic-demo/libs/PaddleLite/linux/amd64/lib/
替换 libpaddle_light_api_shared.so
$ cp build.lite.linux.x86.gcc/inference_lite_lib/cxx/lib/libpaddle_light_api_shared.so PaddleLite-generic-demo/libs/PaddleLite/linux/amd64/lib/
替换头文件后需要重新编译示例程序