简体中文|English
PaddleSeg训练出来的模型,大家可以使用Paddle Serving进行服务化部署。
本文以一个示例介绍使用Paddle Serving部署的方法,更多使用教程请参考文档。
使用Paddle Serving部署模型,要求在服务器端和客户端进行如下环境准备。大家具体可以参考文档进行安装。
在服务器端:
- 安装PaddlePaddle (版本>=2.0)
- 安装paddle-serving-app(版本>=0.6.0)
- 安装paddle-serving-server或者paddle-serving-server-gpu (版本>=0.6.0)
pip3 install paddle-serving-app==0.6.0
# CPU
pip3 install paddle-serving-server==0.6.0
# GPU环境需要确认环境再选择
pip3 install paddle-serving-server-gpu==0.6.0.post102 #GPU with CUDA10.2 + TensorRT7
pip3 install paddle-serving-server-gpu==0.6.0.post101 # GPU with CUDA10.1 + TensorRT6
pip3 install paddle-serving-server-gpu==0.6.0.post11 # GPU with CUDA10.1 + TensorRT7
在客户端:
- 安装paddle-serving-app(版本>=0.6.0)
- 安装paddle-serving-client(版本>=0.6.0)
pip3 install paddle-serving-app==0.6.0
pip3 install paddle-serving-client==0.6.0
下载样例模型用于测试。如果要使用其他模型,大家可以使用模型导出工具。
wget https://paddleseg.bj.bcebos.com/dygraph/demo/bisenet_demo_model.tar.gz
tar zxvf bisenet_demo_model.tar.gz
下载cityscapes验证集中的一张图片用于演示效果。如果大家的模型是使用其他数据集训练的,请自行准备测试图片。
wget https://paddleseg.bj.bcebos.com/dygraph/demo/cityscapes_demo.png
Paddle Serving部署之前,我们需要对预测模型进行转换,详细信息请参考文档。
在准备好环境的客户端机器上,执行如下脚本对样例模型进行转换。
python -m paddle_serving_client.convert \
--dirname ./bisenetv2_demo_model \
--model_filename model.pdmodel \
--params_filename model.pdiparams
执行完成后,当前目录下的serving_server文件夹保存服务端模型和配置,serving_client文件夹保存客户端模型和配置。
大家可以使用paddle_serving_server.serve启动RPC服务,详细信息请参考文档。
在服务器端配置好环境、准备保存服务端模型和配置的serving_server文件后,执行如下命令,启动服务。我们在服务器端使用9292端口,服务器ip使用hostname -i
查看。
python -m paddle_serving_server.serve \
--model serving_server \
--thread 10 \
--port 9292 \
--ir_optim
cd PaddleSeg/deploy/serving
设置serving_client文件的路径、服务器端ip和端口、测试图片的路径,执行如下命令。
python test_serving.py \
--serving_client_path path/to/serving_client \
--serving_ip_port ip:port \
--image_path path/to/image\
执行完成后,分割的图片保存在当前目录的"result.png"。