ubuntu18.4安装docker paddle部署python服务器-OCR-docker

工作需要,我就研究了飞浆,入坑无数,特总结一下,方便下次使用
1,安装号CUDA和CUDNN,参考
2,安装DOCKER参考
-1.

sudo snap install docker

-2.

sudo docker version

-3.

sudo docker run hello-world

3,开始安装NVIDIA-docker
参考
-1,

sudo apt install curl

-2.

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/ubuntu18.04/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update

-3.安装nvidia-docker2软件包,重新加载docker守护程序配置

sudo apt-get install nvidia-docker2
sudo pkill -SIGHUP dockerd
sudo nvidia-docker run --rm nvidia/cuda:10.1-devel nvidia-smi

4,开始安装Paddle-Serving pipeline部署 python版本,注意CUDA版本CUDnn版本
-1.拉取镜像

sudo docker pull registry.baidubce.com/paddlepaddle/serving:0.9.0-cuda10.1-cudnn7-devel

-2.进入镜像内

sudo nvidia-docker run -it --entrypoint=/bin/bash registry.baidubce.com/paddlepaddle/serving:0.9.0-cuda10.1-cudnn7-devel

-3.下载paddlepaddle自由选择,下载地

python3.7 -m pip install paddlepaddle-gpu==2.3.0.post101 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html

-4.安装相关

pip3.7 install paddle-serving-client==0.9.0 paddle-serving-app==0.9.0 paddle-serving-server-gpu==0.9.0.post101 -i https://mirror.baidu.com/pypi/simple

-5.下载OCR repo

git clone https://github.com/PaddlePaddle/PaddleOCR

输出下面提示代表成功:

λ 6369441a8d06 /home git clone https://github.com/PaddlePaddle/PaddleOCR
Cloning into 'PaddleOCR'...
remote: Enumerating objects: 38719, done.
remote: Counting objects: 100% (695/695), done.
remote: Compressing objects: 100% (363/363), done.
remote: Total 38719 (delta 407), reused 563 (delta 332), pack-reused 38024
Receiving objects: 100% (38719/38719), 320.58 MiB | 18.54 MiB/s, done.
Resolving deltas: 100% (26948/26948), done.
Checking connectivity... done.
cd PaddleOCR/deploy/pdserving/

-6.下载并解压 OCR 文本检测模型

wget https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3_det_infer.tar -O ch_PP-OCRv3_det_infer.tar && tar -xf ch_PP-OCRv3_det_infer.tar
wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_infer.tar -O ch_ppocr_server_v2.0_det_infer.tar && tar -xf ch_ppocr_server_v2.0_det_infer.tar

-7.下载并解压 OCR 文本识别模型

wget https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3_rec_infer.tar -O ch_PP-OCRv3_rec_infer.tar &&  tar -xf ch_PP-OCRv3_rec_infer.tar
wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar -O ch_ppocr_server_v2.0_rec_infer.tar &&  tar -xf ch_ppocr_server_v2.0_rec_infer.tar

-8.转换检测模型

python3.7 -m paddle_serving_client.convert --dirname ./ch_PP-OCRv3_det_infer/ \
                                         --model_filename inference.pdmodel \
                                         --params_filename inference.pdiparams \
                                         --serving_server ./ppocr_det_v3_serving/ \
                                         --serving_client ./ppocr_det_v3_client/
python3.7 -m paddle_serving_client.convert --dirname ./ch_ppocr_server_v2.0_det_infer/ \
                                         --model_filename inference.pdmodel \
                                         --params_filename inference.pdiparams \
                                         --serving_server ./ppocr_det_v2.0_serving/ \
                                         --serving_client ./ppocr_det_v2.0_client/

-9.转换识别模型

python3.7 -m paddle_serving_client.convert --dirname ./ch_PP-OCRv3_rec_infer/ \
                                         --model_filename inference.pdmodel \
                                         --params_filename inference.pdiparams \
                                         --serving_server ./ppocr_rec_v3_serving/ \
                                         --serving_client ./ppocr_rec_v3_client/
python3.7 -m paddle_serving_client.convert --dirname ./ch_ppocr_server_v2.0_rec_infer/ \
                                         --model_filename inference.pdmodel \
                                         --params_filename inference.pdiparams \
                                         --serving_server ./ppocr_rec_v2.0_serving/ \
                                         --serving_client ./ppocr_rec_v2.0_client/

-10.0调整模型服务配置文件config.yml
#op资源类型, True, 为线程模型;False,为进程模型
is_thread_op: False
#并发数,is_thread_op=True时,为线程并发;否则为进程并发
concurrency: 8
调整 config.yml 中的并发个数获得最大的QPS, 一般检测和识别的并发数为2:1

det:
    #并发数,is_thread_op=True时,为线程并发;否则为进程并发
    concurrency: 8
    ...
rec:
    #并发数,is_thread_op=True时,为线程并发;否则为进程并发
    concurrency: 4
    ...
vim config.yml
i#进入编辑模式,修改后按下ESC
:wq

-10.01,http端口是4位数

#rpc端口, rpc_port和http_port不允许同时为空。当rpc_port为空且http_port不为空时,会自动将rpc_port设置为http_port+1
rpc_port: 18091

#http端口, rpc_port和http_port不允许同时为空。当rpc_port可用且http_port为空时,不自动生成http_port
http_port: 9998
#build_dag_each_worker, False,框架在进程内创建一条DAG;True,框架会每个进程内创建多个独立的DAG
build_dag_each_worker: True

-11.0启动服务端

python3.7 web_service.py &>log.txt &

-12.0启动客户端

python3.7 pipeline_http_client.py

参考:
DOCKER
paddlepaddleOCR
nvdia-docker
在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值