We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
我在使用以下命令进行表格识别时,发现GPU推理的速度不如CPU的机器上快:
python table/predict_table.py \ --det_model_dir=inference/ch_PP-OCRv3_det_infer \ --rec_model_dir=inference/ch_PP-OCRv3_rec_infer \ --table_model_dir=inference/ch_ppstructure_mobile_v2.0_SLANet_infer \ --rec_char_dict_path=../ppocr/utils/ppocr_keys_v1.txt \ --table_char_dict_path=../ppocr/utils/dict/table_structure_dict_ch.txt \ --image_dir=docs/table/table.jpg \ --output=../output/table
我使用多张图片测试了不同版本的PaddlPaddle和PaddleOCR,最终得出各版本中Slanet模型进行表格推理的耗时(没有完全测试完毕,但是应该都差不多):
可以看到使用GPU推理的时间(第一个表格)甚至会达到1s!(slanet表格推理的输入尺寸固定为488)而我使用CPU推理的时间(第二个表格)在0.4s左右。
我当时考虑可能是paddleocr或paddlepaddle版本的问题,所以尝试更换了多个版本,最终发现在paddlepaddle3.0版本中的GPU推理速度有所提升(1s -> 0.6s)但还是赶不上CPU推理的速度(0.4s),并且我排除了由于不同版本paddleocr的代码不同可能造成的影响,发现耗时都是由 predictor.run() 方法产生的:
predictor.run()
所以我猜测这可能是Paddle框架底层的问题,目前我是将表格使用CPU进行推理,而det和rec仍然使用GPU推理,但感觉很奇怪(逼死强迫症😫),希望有大佬能给出优雅的解决方法,或者提供一些解决思路,我将不胜感激!
slanet表格识别推理的其他问题:slanet表格识别的match步骤对于cells和det检测框特别多的表格耗时特别长(有些大篇幅表格match的耗时就>3s),有没有优化的可能?
OS:Windows10 GPU:4090 CPU:i5-12600kf Python:3.10.16 paddlepaddle-gpu:2.6 PaddleOCR:2.6.0 CUDA:11.8 CUDNN:8.6.0
在 F:\Dev\anaconda3\envs\paddle2.6_paddleocr2.6.0\Lib\site-packages\paddleocr\ppstructure\table\predict_table.py 中添加用于输出表格推理时间的日志代码:
F:\Dev\anaconda3\envs\paddle2.6_paddleocr2.6.0\Lib\site-packages\paddleocr\ppstructure\table\predict_table.py
…… time_dict['match'] = toc - tic logger.info("table time : {:.3f}s".format(time_dict['table'])) # 新增输出表格推理时间的日志代码 result['html'] = pred_html end = time.time() time_dict['all'] = end - start return result, time_dict ……
新建一个测试脚本调用表格推理,其中各权重路径更换为自己的路径,分别使用GPU和CPU进行推理:
from paddleocr.ppstructure.table import predict_table from paddleocr.ppstructure.utility import parse_args if __name__ == "__main__": args = parse_args() # args.use_gpu = True args.use_gpu = False args.table_model_dir = r"C:\Users\marui199710\Desktop\test\zzsfp\models\table_slanet" args.det_model_dir = r"C:\Users\marui199710\Desktop\test\zzsfp\models\table_dbnet" args.rec_model_dir = r"C:\Users\marui199710\Desktop\test\zzsfp\models\ch_PP-OCRv3_rec_infer" args.rec_char_dict_path = r"F:\Dev\anaconda3\envs\paddle2.6_paddleocr2.6.0\Lib\site-packages\paddleocr\ppocr\utils\ppocr_keys_v1.txt" args.table_char_dict_path = r"F:\Dev\anaconda3\envs\paddle2.6_paddleocr2.6.0\Lib\site-packages\paddleocr\ppocr\utils\dict\table_structure_dict_ch.txt" args.image_dir = r"C:\Users\marui199710\Desktop\test\zzsfp\images\table" args.output = r"output" predict_table.main(args)
The text was updated successfully, but these errors were encountered:
其实要连续测才行,GPU推理的时候第一张图预热比较慢,很正常,得写一个server去测试,多张图连续测
Sorry, something went wrong.
@jingsongliujing 我这个就是连续测试后的耗时记录,你可以看到GPU推理耗时比CPU慢是一个普遍现象,并不是第一次慢
我们之前就发现,起服务的时候,第一次去请求差不多1秒多,但是你第二次,第三次连续去请求,就比较快了,建议写一个flask试试
@jingsongliujing 我使用flask进行了测试还是存在这个问题不论多少次请求,虽然后续请求确实速度有所增加(时间波动不到0.1s)但是均比cpu环境下速度慢。 但是改为使用onnx推理table的推理耗时不到0.2s!似乎可以实锤这就是paddlepaddle底层的问题,更换onnx模型推理速度就正常了,最终测试的推理时间排序是:paddle2.6(1s)>paddle3.0(0.8s)onnx(0.2s)
No branches or pull requests
🔎 Search before asking
🐛 Bug (问题描述)
我在使用以下命令进行表格识别时,发现GPU推理的速度不如CPU的机器上快:
我使用多张图片测试了不同版本的PaddlPaddle和PaddleOCR,最终得出各版本中Slanet模型进行表格推理的耗时(没有完全测试完毕,但是应该都差不多):
可以看到使用GPU推理的时间(第一个表格)甚至会达到1s!(slanet表格推理的输入尺寸固定为488)而我使用CPU推理的时间(第二个表格)在0.4s左右。
我当时考虑可能是paddleocr或paddlepaddle版本的问题,所以尝试更换了多个版本,最终发现在paddlepaddle3.0版本中的GPU推理速度有所提升(1s -> 0.6s)但还是赶不上CPU推理的速度(0.4s),并且我排除了由于不同版本paddleocr的代码不同可能造成的影响,发现耗时都是由
predictor.run()
方法产生的:所以我猜测这可能是Paddle框架底层的问题,目前我是将表格使用CPU进行推理,而det和rec仍然使用GPU推理,但感觉很奇怪(逼死强迫症😫),希望有大佬能给出优雅的解决方法,或者提供一些解决思路,我将不胜感激!
slanet表格识别推理的其他问题:slanet表格识别的match步骤对于cells和det检测框特别多的表格耗时特别长(有些大篇幅表格match的耗时就>3s),有没有优化的可能?
🏃♂️ Environment (运行环境)
OS:Windows10
GPU:4090
CPU:i5-12600kf
Python:3.10.16
paddlepaddle-gpu:2.6
PaddleOCR:2.6.0
CUDA:11.8
CUDNN:8.6.0
🌰 Minimal Reproducible Example (最小可复现问题的Demo)
在
F:\Dev\anaconda3\envs\paddle2.6_paddleocr2.6.0\Lib\site-packages\paddleocr\ppstructure\table\predict_table.py
中添加用于输出表格推理时间的日志代码:新建一个测试脚本调用表格推理,其中各权重路径更换为自己的路径,分别使用GPU和CPU进行推理:
The text was updated successfully, but these errors were encountered: