PaddleOCR inference 方式调用模型可能造成的并发错误

dfty9e19  于 2022-12-31  发布在  其他
关注(0)|答案(1)|浏览(222)

通过 paddle inference 部署模型的时候,并发的时候会不会有问题,
比如: 文字检测 predict_det.py 里面的 __call__ 方法
预测代码摘要如下:

if self.use_onnx:
    input_dict = {}
    input_dict[self.input_tensor.name] = img
    # !!! 这样写看起来更靠谱一些 
    outputs = self.predictor.run(self.output_tensors, input_dict)
else:
    # !!! 这里的 input 和 output 为全局变量,那么当 TextDetector.__call__() 被并发调用的时候,按照 python 的理解,可能造成数据错乱
    self.input_tensor.copy_from_cpu(img)
    self.predictor.run()
    outputs = []
    for output_tensor in self.output_tensors:
        output = output_tensor.copy_to_cpu()
        outputs.append(output)
        if self.args.benchmark:
            self.autolog.times.stamp()

这个我并没有测试,但是看代码明显会出问题。
我看(inference文档)[https://www.paddlepaddle.org.cn/inference/v2.4/api_reference/python_api_doc/Predictor.html],predictor介绍的也有些简陋,不知道非 onnx 方式,能不能这样调用

output = predictor.run(self.output_tensors, input_dict)

这样看起来更靠谱一些~

期待答疑!

qqrboqgw

qqrboqgw1#

一个多月了,没人解答!
这算是个比较严重的问题啊!

相关问题