lingyiliu016
lingyiliu016
大佬,这个也是因为bazel的版本问题吗? 我该具体怎么操作? 给一个建议吧。 现在我卡在这里了
paddleocr的工程师,你好! 我从网上查了一下关于这个问题的介绍,感觉都没有找到合适的解决方案。 我是使用tornado框架做的web服务,监听了一个函数(接口)做的。拉起服务的时候,做一次初始化;每调用一次接口,做一次图像的检测+识别。 当用多线程调用接口,即:压力测试,就会抛出ResourceExhaustedError: Fail to alloc memory of 776212480 size, error code is 12.错误。当第一次调用接口的时候,剩余内存从6个G一下子降为1个G。即使接口调用完毕,也不释放内存。如果有2~3个线程测试,剩余内存会继续下降至200M左右,并且也不释放内存。 导致这个问题的原因具体是什么? > 有说是跟“ enable_mkldnn=True, use_mp=True,”相关的; > 有说是跟“tools/infer/utility.py”中的# enable memory optim config.enable_memory_optim()有关系。但是最新paddleocr版本2.6.0.1中这一项是取消注释的,但是还是会有各种问题? > 有说是“更换环境、python 我从3.6 更新到3.7,paddle...
> 你好啊; > > > 即:压力测试完之后2分钟内不释放内存,但是过了20分钟左右之后,发现自动释放内存了 > > 麻烦看下后台是否有残留Python进程; > > enable_mkldnn=True, use_mp=True的问题,如果你自己在写了多进程预测,建议不把use_mp设置为True; 如果是测试,也先把enable_mkldnn=False > > 内存一直增加是出现了内存泄露;可否提供你的测试代码?我在aistudio上创建了python3.7 + paddle2.3.2 + paddleocr2.6.0.1 测试了510张图像,10进程,没有出现内存泄露和内存没有释放的情况 我刚才在windows上又重新测试了一下。用10个线程模拟客户端请求,paddleocr内存释放的效果图。纵轴是paddleocr占用的内存,横轴是服务端处理完客户端的所有请求(理论上该立马释放内存),但实际是,大约用了500s,才逐渐释放完内存。需要说明的是tornado框架是单进程,多线程;不是多进程。 Ubuntu上面测试(其实重点关注的是ubuntu上的测试,因为生产环境是在ubuntu上面)。用10个线程模拟客户端请求,paddleocr迅速在2s内占用6.3G以上的内存,剩余可用内存低于100M,导致抛出错误ResourceExhaustedError: Fail to alloc memory of 776212480...
> > paddleocr内存释放的效果图。纵轴是paddleocr占用的内存,横轴是服务端处理完客户端的所有请求(理论上该立马释放内存),但实际是,大约用了500s,才逐渐释放完内存。 > > 如果你是起服务测试,是否是每个服务里都重新初始化了paddleocr.PaddleOCR这个类,这个类是包含模型初始化的,初始化一次后可以重复使用,如果每个进程都初始化确实会导致占据额外的内存 > > 可以使用PaddleOCR的paddleserving部署方式: https://github.com/PaddlePaddle/PaddleOCR/tree/release/2.6/deploy/pdserving 是初始化一次的。我把代码贴上去。等我一会儿,我在写,写好之后,会贴上去
以下是我在ubuntu上(8G内存),测试代码,复现了ResourceExhaustedError: Fail to alloc memory of 776212480 size, error code is 12.虽然这次web服务没有被kill而退出。 **注意:** 一共4个文件,里面涉及的路径需要你自己配置。 init.py中检测模型、识别模型、方向分类器模型的权重的文件的路径需要自己配置 web_server.py中image_path需要配置。这个路径是web_server接受到从网络中传过来的照片时,需要保存到操作系统上文件系统的文件路径 client.py 中的path是客户端上传的图片的文件路径,image_file_list是需要单次上传图片名称的列表。 具体如下: **init.py** ```from paddleocr import PaddleOCR global ocr_model def init(): global ocr_model...
> 内存一直增加是出现了内存泄露;可否提供你的测试代码? 我刚才提供了相关测试代码,你可以在自己的ubuntu上复现一下ResourceExhaustedError: Fail to alloc memory of 776212480 size, error code is 12.
即使我把enable_mkldnn=True, use_mp=True注释掉,还是会出现“ResourceExhaustedError: Fail to alloc memory of 2619707392 size, error code is 12.”这样的错误。具体细节如下: **init.py** ``` global ocr_model def init(): global ocr_model DET_MODEL_DIR = r"C:\temp\paddocr_infer\ch_PP-OCRv3_det_infer" REC_MODEL_DIR = r"C:\temp\paddocr_infer\ch_PP-OCRv3_rec_infer" CLS_MODEL_DIR = r"C:\temp\paddocr_infer\ch_ppocr_mobile_v2.0_cls_infer"...
> https://github.com/PaddlePaddle/PaddleOCR/blob/release%2F2.5/PPOCRLabel/libs/labelColor.py > > Is labelColor.py in your directory? 找了找,发现labelColor.py 在PPOCRLabel/libs/下面,但是还报错!
 