paddleocr 做识别时,怎么让CPU多核都跑起来

在没有GPU的情况下,使用PaddleOCR进行OCR预测时,可以通过设置`enable_mkldnn=True`和`cpu_threads`来利用多核CPU加速。MKL-DNN主要用于优化推理过程,提高预测效率,但在训练流程中不适用,因为训练涉及复杂的反向传播和梯度更新。
部署运行你感兴趣的模型镜像

在没有GPU机器时,普通的多核CPU,做ocr预测某个长PDF时,默认只使用一个核,有点慢, 已有的资源没用好。
这样设置:
from paddleocr import PaddleOCR
ocr_model = PaddleOCR(use_angle_cls=True, lang="ch", enable_mkldnn=True, cpu_threads=8)
而不是设置 use_mp和total_process_num。 这两个参数 在调用  tools/infer/predict_system.py时,会启动多进程,把需要处理的一串文件 分割成多个任务(image_file_list[args.process_id::args.total_process_num]),分别用total_process_num个进程处理。

注意后两个参数,会先判断enable_mkldnn, 为true才使用后面的cpu_threads
需要在实例化PaddleOCR时就设置好,不能:
ocr_model = PaddleOCR(use_angle_cls=True, lang="ch")
再在后面设置
ocr_model.args.enable_mkldnn=True
ocr_model.args.cpu_threads=4

enable_mkldnn=True后,接下来会走如下代码。
config.set_cpu_math_library_num_threads(args.cpu_threads)
则在后面调用C的部分计算时,能用到CPU的多核 加速计算。

另个,这个参数只能用于预测流程。训练流程用不了。在paddleocr里是这样。
虽然 看到一些mkldnn的介绍,在训练和预测流程中都能使用。另外加速的部分也可能只是所有计算中的一部分,不是最耗时的操作,那可能也看不到效果。

问了一下大模型:(参考)
enable_mkldnn这个参数,为什么只能在预测流程中使用,训练流程中不起作用? 
参数"enable_mkldnn"是用于开启MKL-DNN(Math Kernel Library-DNN)加速的选项。MKL-DNN是一个开源的库,用于优化深度学习推理过程中的计算性能。
在预测流程中,我们仅需要执行模型的推理过程,而不需要进行梯度计算和参数更新,因此可以使用MKL-DNN来加速推理过程,提高预测速度和效率。
然而,在训练流程中,我们需要进行大量的反向传播和梯度更新,以优化模型的参数。MKL-DNN并不能提供在训练过程中所需的计算优化,因此"enable_mkldnn"参数在训练流程中无法起到作用。
总结来说,"enable_mkldnn"参数只能在预测流程中使用,因为它仅适用于优化推理过程的计算性能,而在训练过程中需要更复杂的计算操作,无法通过MKL-DNN进行加速。

------------------------------

看到一张图 有点意思:

你像哪种?  如果你实际月薪2k,心里想的是月薪5w的事,将来你有机会成为月薪5w的人。  
如果月薪1w的人想着月薪1w的事:凭运气得到的东西会凭实力还回去。有点高追求, 想点有意义的事吧!

您可能感兴趣的与本文相关的镜像

Wan2.2-I2V-A14B

Wan2.2-I2V-A14B

图生视频
Wan2.2

Wan2.2是由通义万相开源高效文本到视频生成模型,是有​50亿参数的轻量级视频生成模型,专为快速内容创作优化。支持480P视频生成,具备优秀的时序连贯性和运动推理能力

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值