[PaddlePaddle/PaddleOCR]部署后发送服务请求失敗

2024-05-20 846 views
8

照着PPOCR 服务化部署的步骤做,不知道错在哪里

  • 系统环境/System Environment:Linux
  • 运行指令/Command Code:python3 pipeline_http_client.py
  • 完整报错/Complete Error Message: 螢幕擷取畫面 2022-03-06 172541

回答

8

@latinfish28 我也遇到了同样的情况,不过是有些调用失败,有些又成功了。你后来找出原因了吗?官方一直不给出回复,问题又太多,在犹豫要不要考虑换别的项目

0

@Biaocsu 没有,我还在等官方回复,你有修改什么参数才成功的吗?

2

这种调用失败不是必现的,部署好后,我这边有时调用失败有时又不会,我也找不出原因。 1、PaddleServing部署,好像不支持修改参数,没看到哪里可以修改,问官方也没回复 2、PaddleHub Serving部署可以支持修改参数,我这边部署使用没发现什么严重问题,就是暴露的http等不支持自定义,这个不知道如何解决 3、基于Python引擎的PP-OCR模型库推理,这种纯python调用感觉更合适点,后面自己部署,毕竟官方部署好像并没有什么加速,我这边实验是这样的结果

1

另外,可以看下log.txt中的日志 PipelineServingLogs/pipeline.log 里的报错信息提示

8

@LDOUBLEV 我这边服务部署好后,有时预测没问题,有时预测才会出现上述的问题。出现问题不是必现的,等后面出现了再都贴出来

9

更新了PaddleServing 部署PaddleOCR 文档里要求的paddle paddle版本,建议用paddlepaddle 2.2.2版本 #5674

我使用docker环境(sudo nvidia-docker run --name ppocr -v $PWD:/paddle --shm-size=64G --network=host -it registry.baidubce.com/paddlepaddle/paddle:2.1.3-gpu-cuda11.2-cudnn8 /bin/bash), 版本为:paddlepaddle-gpu 2.2.2.post112 应该不是我这边操作问题

9

看你的操作没啥问题,用的docker也是paddle官方的docker;

偶尔有图预测会报错;可能是某些图片的格式不支持或者其他原因导致报错,以后遇到预测报错的图片,可以看下报错信息

9

好。之前没注意,现在找不到报错信息,也不是必现的,较难找出原因

1

@LDOUBLEV PipelineServingLogs/pipeline.log 里的报错信息提示

ERROR 2022-03-06 17:29:40,896 [operator.py:846] (log_id=109) det failed to predict.
ERROR 2022-03-06 17:29:40,899 [dag.py:409] (data_id=109 log_id=0) Failed to predict: (log_id=109) det failed to predict.
INFO 2022-03-06 17:29:40,927 [pipeline_server.py:51] (log_id=0) inference request name:ocr self.name:ocr
INFO 2022-03-06 17:29:40,927 [operator.py:1375] RequestOp unpack one request. log_id:0, clientip:             name:ocr, method:prediction
INFO 2022-03-06 17:29:40,927 [dag.py:368] (data_id=110 log_id=0) Succ Generate ID 
ERROR 2022-03-06 17:29:41,005 [operator.py:801] (data_id=110 log_id=110) [det|7] Failed to process(batch: [110]): (PreconditionNotMet) Cannot load cudnn shared library. Cannot invoke method cudnnGetVersion.
  [Hint: cudnn_dso_handle should not be null.] (at /paddle/paddle/fluid/platform/dynload/cudnn.cc:59)
Traceback (most recent call last):
  File "/home/chang/miniconda3/envs/paddle_env/lib/python3.6/site-packages/paddle_serving_server/pipeline/operator.py", line 790, in _run_process
    midped_batch = self.process(feed_batch, typical_logid)
  File "/home/chang/miniconda3/envs/paddle_env/lib/python3.6/site-packages/paddle_serving_server/pipeline/operator.py", line 447, in process
    log_id=typical_logid)
  File "/home/chang/miniconda3/envs/paddle_env/lib/python3.6/site-packages/paddle_serving_app/local_predict.py", line 263, in predict
    input_tensor_handle.copy_from_cpu(feed[name])
  File "/home/chang/miniconda3/envs/paddle_env/lib/python3.6/site-packages/paddle/fluid/inference/wrapper.py", line 35, in tensor_copy_from_cpu
    self.copy_from_cpu_bind(data)
RuntimeError: (PreconditionNotMet) Cannot load cudnn shared library. Cannot invoke method cudnnGetVersion.
  [Hint: cudnn_dso_handle should not be null.] (at /paddle/paddle/fluid/platform/dynload/cudnn.cc:59)

log.txt像这样 image

模型路径和config文件里的配置有对上,然后是用paddlepaddle-gpu 2.2.2版本

6

@latinfish28 看你这个报错信息好像跟cudnn有关,不知道你cuda等环境是否有问题,另外paddlepaddle-gpu版本后面需要有一个post如:2.2.2.post112。我也急切想找出该问题原因,所以先问下你,哈哈哈

9

我没有看到版本后面有post,但后来有解决cudnn的问题了

后来的问题好像是batch size的问题,可能还要找一下要去哪里调参数 1646987403537

4

它是有时候会侦测到文字,有时候不行,就是因为记忆体不足

8

我没有看到版本后面有post,但后来有解决cudnn的问题了

后来的问题好像是batch size的问题,可能还要找一下要去哪里调参数 1646987403537

你这是利用PaddleServing进行部署吧?好像该方法部署默认batch_size=1,理论应该不会出现显存不足的问题,你可以多实验几次,或者换台机器试下

1

它是有时候会侦测到文字,有时候不行,就是因为记忆体不足

这个问题我也发现了,PaddleServing部署有一个很大问题,我前面也提到了,很多参数无法进行设置,尤其是det_limit_side_len关于图片尺寸的参数,该参数设置较小会导致很多图片文字无法识别

4

@Biaocsu 我可能会试别的方法了,可能因为我设备不足的问题,所以执行的时候,会一直当机

谢谢你跟我讨论这个问题,不知道你后来进行到哪里了

5

我三种方式都试了(两种部署,一种Python调用),部署都有无法解决的问题,有可能用python调用,自己部署吧