PaddleOCR执行过程中我发现只用了一个CPU核心,于是我参考了Paddle的多核优化,实现代码如下:
exec_strategy = fluid.ExecutionStrategy()
exec_strategy.num_threads = 8
# 配置构图策略,对于CPU训练而言,应该使用Reduce模式进行训练
build_strategy = fluid.BuildStrategy()
build_strategy.reduce_strategy = fluid.BuildStrategy.ReduceStrategy.Reduce
print(time.time())
results = ocr.recognize_text(
images=np_images, # 图片数据,ndarray.shape 为 [H, W, C],BGR格式;
use_gpu=True, # 是否使用 GPU;若使用GPU,请先设置CUDA_VISIBLE_DEVICES环境变量
output_dir='out/ocr_result', # 图片的保存路径,默认设为 ocr_result;
visualization=True, # 是否将识别结果保存为图片文件;
box_thresh=0.5, # 检测文本框置信度的阈值;
text_thresh=0.5, # 识别中文文本置信度的阈值;
build_strategy=build_strategy,
exec_strategy=exec_strategy)
但是执行后报错: recognize_text() got an unexpected keyword argument 'build_strategy'。似乎是没有没有处理和传递build_strategy。
请问有PaddleOCR支持多核CPU吗?
同问,我也想知道CPU预测时,如何开启多核模式?
这个问题是因为默认use_gpu为True,如果在cpu上跑就只能跑一个核心,显示设置为False就可以使用多个cpu核心,推理速度提升3到5倍。
同问, 如何开启多核
同问
命令行里面--help发现一个参数--enable_mkldnn,在使用命令行的时候如果--enable_mkldnn=True,多核心就用起来了。应该是某个方法里面也有enable_mkldnn这个参数可以设置。
究竟能不能用啊?
试了很多方法,感觉没法用,也没人回答
use_mp=False #是否开启多进程预测
total_process_num=1 #多进程时开启的进程数量
cpu_threads=10 #CPU10条线程