进程模式下发python SDK模型
本文档介绍如何通过进程模式下发easyedge的linux-python-sdk。
本文档使用了easyedge开源的sdk做验证,sdk获取地址:EasyEdge开源模型体验。本文使用的是物体检测YoloV3_MobileNetV3模型。
依赖环境安装
参考 easyedge linux-python-sdk 使用指南
(1) 安装paddle环境 x86用paddlepaddle,arm可以安装paddlelite。
(2) 安装easyedge python wheel包 在下载的sdk中包含了对应的wheel包。安装版本需要与python版本对应。
(3)环境依赖检查。安装完成后,检查是否安装成功
pip3 list --format=columns | grep paddlelite
paddlelite 2.11
pip3 list --format=columns | grep BaiduAI-EasyEdge-SDK
BaiduAI-EasyEdge-SDK 1.3.1
注意: 进程模式以root运行,所以paddle和easyedge的wheel需要装在root用户下
部署准备
(1)模型SDK处理 修改demo_serving.py文件 arm环境使用的paddle-lite,engine使用edge.Engine.PADDLE_LITE。 x86换使用的是edge.Engine.PADDLE_FLUID server.run(host=host, port=port,device=edge.Device.CPU, engine=edge.Engine.PADDLE_LITE)
(2)运行脚本 不通过BIE直接本地编译运行截图如下:
因为BIE进程模式只支持运行sh脚本,不支持python。所以当以进程模式下发时,我们需要通过sh脚本来运行python脚本 示例bootstrap脚本:
#! /bin/bash
export OPENBLAS_CORETYPE=ARMV8
# 在armv8 CPU上运行,需要添加环境变量
IFS=$'\n'
folders=($(find mnt/easyedge/ -type d -name "EasyEdge-Linux-*" -maxdepth 1))
unset IFS
model_folder=${folders[0]
# 选择{工作路径}/mnt/easyedge下以EasyEdge-Linux开头的folder
python3 "${model_folder}/python/infer_demo/demo_serving.py" "${model_folder}/RES/"
(3)创建程序包 整理程序入口配置文件:
- 文件名:program.yml
- 文件内容:entry: "bootstrap.sh" 将program.yml压缩为zip文件 zip program.yml.zip program.yml
创建应用和配置项
(1)创建程序包配置项,同时引入program.yml.zip 和 bootstrap.sh.zip
(2)创建配置项,引入模型sdk,是否解压选择“是”
(3)创建进程应用 引入程序包配置项; 引入模型配置项,填写容器内目录
(4)将应用部署至边缘节点
测试应用
可以通过直接导入以下文件的方式在平台创建应用,直接进行体验
通用arm架构
- 导入进程配置项:进程程序包-arm-python.json
- 导入模型大文件配置项:配置项-python-sdk.json
- 导入进程应用:应用-python-jincheng-test.json
通用x86架构
- 导入进程配置项:进程程序包-python-demo.json
- 导入模型大文件配置项:配置项-python-sdk-x86.json
- 导入进程应用:应用-python-jincheng-test-x86.json