paddleOCR显存不断增大的原因

本文探讨了PaddleOCR运行时显存不断增大的原因,并提供了通过调整输入图像尺寸来控制显存使用的方法。

paddleOCR显存不断增大的原因

不断增长是因为分配的 shape 变大了,初始化创建 tempory tensor 等等会增长,等初始化之后跑起来,shape 不增大的话应该会稳定。正常是过了最大的 shape 之后会保持稳定。 如果 shape 变小显存池尺寸也不会变小,目前机制会贪心增大但不会降低。

如果你想控制最大显存变小一点,可以减小输入图像的尺度:将params.py中的参数det_max_side_len从默认的960改成680或者更小尺度。

https://github.com/PaddlePaddle/PaddleOCR/issues/489

### PaddleOCR 显存未正常释放解决方案 当使用 `PaddleOCR` 完成 OCR 任务后,如果 GPU 的显存未能正常释放,可以采取以下措施来解决问题。 #### 方法一:重启 Python 解释器 每次执行完涉及 GPU 资源的任务之后,尝试重新启动 Python 解释器。这有助于清理可能残留于内中的对象并彻底清除 GPU 上分配给该会话的所有资源[^1]。 #### 方法二:手动终止子进程 有时即使主程序已经结束,由框架创建的一些后台子进程仍然可能在,并继续占用 GPU 资源。对于这种情况: - 首先通过命令 `nvidia-smi` 检查是否有任何进程正在使用 GPU; - 接下来利用 `fuser -v /dev/nvidia*` 命令获取具体占用 GPU 的 PID 列表; - 对这些识别出来的 PID 执行 `kill -9 <PID>` 来强制关闭它们,从而达到完全回收 GPU 内的目的[^2]。 #### 方法三:优化代码逻辑 确保在调用 `PaddleOCR` API 后及时销毁不再需要的对象实例,特别是那些持有大量 GPU 数据结构的大规模变量或模型参数。可以通过设置相应的配置项减少不必要的缓积累,比如调整 batch size 或者限制最大 GPU 内量等参数[^3]。 ```python import paddleocr def perform_ocr(image_path, gpu_memory_limit=800): ocr_engine = paddleocr.PaddleOCR(gpu_mem=gpu_memory_limit) result = ocr_engine.ocr(img=image_path) del ocr_engine # 删除引擎实例 import gc gc.collect() # 强制垃圾收集 return result ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈攻城狮s

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值