【发布时间】:2021-01-27 00:31:10
【问题描述】:
我有一个查找对象,特别是来自gensim.models.keyedvectors.Word2VecKeyedVectors 的预训练 word2vec 模型。我需要做一些数据预处理,并且我正在使用多处理。有没有办法让我的所有进程都可以使用同一内存位置的对象,而不是每个进程将对象加载到自己的内存中?
【问题讨论】:
标签: python multiprocessing word2vec
我有一个查找对象,特别是来自gensim.models.keyedvectors.Word2VecKeyedVectors 的预训练 word2vec 模型。我需要做一些数据预处理,并且我正在使用多处理。有没有办法让我的所有进程都可以使用同一内存位置的对象,而不是每个进程将对象加载到自己的内存中?
【问题讨论】:
标签: python multiprocessing word2vec
是的,如果:
.save() 方法保存的,相关的大型向量数组显然是独立的 .npy 文件.load() 方法加载的,带有 mmap 选项请参阅this prior answer,了解类似需求的步骤/问题的概述。
(在 Gensim 4.0.0 中不再需要通过手动修补 norm 属性来避免破坏 mmap 共享的问题和额外步骤,目前仅作为预发布版本提供.)
【讨论】:
是的,这里有两个选项:
【讨论】: