machine-learning - 为什么easyocr在本地开发机器上占用更多内存而在google colab上占用更少?
问题描述
我正在使用easyocr对图像执行文本识别,但发现:
- 在我执行块后它占用大约 2GB 内存:
reader = easyocr.Reader(["en"])
在本地机器上 - 在google colab上只占用200MB-400MB左右
以下是显示差异的图像:
谷歌 colab 截图
本地系统截图后r = easyocr.Reader([])
之前的本地系统截图
如果您对代码感兴趣,那么这里是代码:
import easyocr
from PIL import Image
# Initialize easyocr with english language
reader = easyocr.Reader(['en'], gpu=True)
img = np.asarray(Image.open("input.png"))
reader.readtext(img, paragraph=True)
发现结果:
- 参数
batch_size=16
和workers=4
inreader.readtext
提高速度但占用更多内存。 - using 参数
allowlist
inreader.readtext
对内存大小没有任何影响,但在一定程度上有助于提高准确性。
预期成绩:
- 使用 easyocr 减少内存使用量。
- 如果建议作为此问题的答案,下载和使用轻量级模型的说明。
- 在 Nvidia GPU(GeForce GTX 1650 - 4GB RAM)上快速运行的最佳配置,内存使用率低(可选)。
解决方案
推荐阅读
- vue.js - 如何在 Vue.js 3 组合 API 中改变脚本逻辑中的反应值并让它更新 DOM?
- swift - 领域工作室/浏览器的领域加密密钥
- c++ - 将值传递给接受引用的函数
- reactjs - 使用 RXJS 悬停时的工具提示延迟
- c++ - std::function 是否保留对捕获变量的引用
- angular - Angular 9 - 即使使用共享模块也找不到自定义管道
- wpf - 如何获取按键的键盘扫描码?
- php - 如何使用 Google Drive API 在我的 Drive (PHP) 中上传文件?
- jpa - 使用 ListAll() 在 JPA 中包含相关表中的列
- windows - 防止视频过度绘制窗口背景