首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法用更快的速度将熊猫并行应用

无法用更快的速度将熊猫并行应用
EN

Stack Overflow用户
提问于 2020-05-28 14:17:26
回答 1查看 2.3K关注 0票数 1

我试图通过一个时间复杂的自定义过程传递每个单词来纠正文档中的OCR解析单词。这个过程是我的自定义业务功能,它可以查看单词的各种语义。

我正试图以更快的速度加快这一进程。我有一个16核心处理器,我没有看到所有的核心正在使用,因为我看到只有一个核心消耗100%,剩下的15个空闲。我错过了什么?

我尝试了以下不同的选择,但都没有成功。有人能告诉我我在这里错过了什么吗?df是一个数据文件,每一行都包含一个单词。correct_ocr_string是一个业务函数,它以字符串作为输入,通过自定义ML模型运行并返回一个字符串。

代码语言:javascript
复制
df['Corrected'] = df.OCR.swifter .progress_bar(False).apply(lambda x: correct_ocr_string(x))
代码语言:javascript
复制
df['Corrected'] = df.OCR.swifter .progress_bar(False).apply(correct_ocr_string)
代码语言:javascript
复制
v_fnc = np.vectorize(correct_ocr_string)
df['Corrected'] = df.OCR.swifter .progress_bar(False).apply(v_fnc)

我也尝试过pandarallel.parallel_apply,但没有成功。

代码语言:javascript
复制
from pandarallel import pandarallel
pandarallel.initialize(nb_workers=multiprocessing.cpu_count())
df['Corrected'] = df.OCR.parallel_apply(correct_ocr_string)
EN

回答 1

Stack Overflow用户

发布于 2020-08-06 14:51:56

您必须使用allow_dask_on_strings(enable=True)

代码语言:javascript
复制
df.OCR.swifter.allow_dask_on_strings(enable=True).apply(correct_ocr_string)

你有可能使用木星笔记本吗?多处理可能会在那里造成问题(更快和更全面)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62066987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档