通过 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)
这样看起来更靠谱一些~
期待答疑!
1条答案
按热度按时间qqrboqgw1#
一个多月了,没人解答!
这算是个比较严重的问题啊!