Steffy-zxf

Results 12 comments of Steffy-zxf

你好!建议直接将所有图片使用cv2读入之后,一次性传给预测接口recognize_text(使用参数images) 如: ```python import os import cv2 import paddlehub as hub test_images = 'Path/To/Images' ocr = hub.Module(name="chinese_ocr_db_crnn_server") imgs = [cv2.imread(image) for image in test_images] ocr.recognize_text(images=[imgs], use_gpu=True) ```

@LeeYongchao @Bingjiajia @moruifang0508 感谢反馈!请问你们有试过不使用hub serving,本地调用ocr模型预测,是否会出现显存不足的情况呢?如果出现显存不足的情况,方便将待预测图片发下吗?

@LeeYongchao 循环使用recognize_text接口预测,每次预测一张图片,发现显存在增长。这种情况是符合预期的,因为program在运行的时候会逐渐判断需要多少显存,逐渐分配显存。所以可以看到显存先逐渐增长,之后会稳定。只有当所有图片预测完毕,也就是说当加载的ocr module不再使用,垃圾回收后,此时显存会回收。

@LeeYongchao 你使用serving部署module预测。当你的请求结束,只能说明客服端预测完成,但是服务端的进程还在运行,也就是说加载的ocr module没有消亡,自然还会继续占用显存。你可以试试`hub stop --help`命令 终止服务端进程,这样显存就会释放回收。

@LeeYongchao @y455471846b 你好! 你的数据量是多大呢? 我试了一张49KB的图片,chinese_ocr_db_crnn_server模型显存占用大概4000MB。你说的 > 脚本运行后,显存还是那么大(5个G的样子),永远不下降。 5G的显存占用,是否有别的进程也在使用同一张显卡呢? 另外如果你的显存不足够大,可以试试 轻量级ocr模型[chinese_ocr_db_crnn_mobile]( https://www.paddlepaddle.org.cn/hubdetail?name=chinese_ocr_db_crnn_mobile&en_category=TextRecognition)

@moruifang0508 你好!paddlehub 是 基于paddle开发的,底层深度学习常用的算子是使用paddle提供的API。清理显存使用,待程序完整使用结束后,会自动释放。

@LeeYongchao @y455471846b @moruifang0508 感谢反馈!目前预测模式是进程所有线程复用共享内存池,只有等待进程完整结束后显存和内存才会回收释放。输入图片预测完毕需要释放显存内存这个需求已经反馈!预计paddle下个版本会支持。敬请期待。

目前还没有,预计在paddle 2.0正式版本中解决。

@sunhaha123 是否能够提供最小复现代码?

@HarderThenHarder @sunhaha123 你好!请确认下训练后保存的模型参数是否被正确加载,如以下代码 ```python if args.init_from_ckpt and os.path.isfile(args.init_from_ckpt): state_dict = paddle.load(args.init_from_ckpt) model.set_dict(state_dict) ```