我正在使用 joblib.Parallel 来获取对同一数据集进行操作的多个二进制分类器的结果。每个分类器都有自己的矢量化程序,因此我将数据集作为字符串列表传递给每个进程(文本分类问题)。
我的代码如下:
joblib.Parallel(n_jobs=-1)(joblib.delayed(_make_item_predictions)(
classifier_path,
documents
) for classifier_path in self.classifiers_path.iterdir())
documents 是可变长度字符串的python列表,而 classifier_path 是每个二进制分类器的路径。
阅读joblib文档时,我发现这效率不高,因为将对并行运行的每个进程的大字符串列表进行序列化然后反序列化。按照文档的方向,我将列表映射如下:
joblib.dump(documents, "documents_memmap")
documents = joblib.load("documents_memmap", mmap_mode="r")
但是,此操作花费了很长时间,并且对流程的执行时间没有任何影响。我在执行过程中犯了错误吗?