小编Sil*_*scu的帖子

Doc2vec MemoryError

我使用teh gensim框架中的doc2vec模型来表示15 500 000个短文档(最多300个单词)的语料库:

gensim.models.Doc2Vec(sentences, size=400, window=10, min_count=1, workers=8 )
Run Code Online (Sandbox Code Playgroud)

在创建向量之后,有超过18 000 000个向量代表单词和文档.

我想找到给定项目最相似的项目(单词或文档):

 similarities = model.most_similar(‘uid_10693076’)
Run Code Online (Sandbox Code Playgroud)

但是在计算相似度时我得到一个MemoryError:

Traceback (most recent call last):

   File "article/test_vectors.py", line 31, in <module> 
    similarities = model.most_similar(item) 
  File "/usr/local/lib/python2.7/dist-packages/gensim/models/word2vec.py", line 639, in most_similar 
    self.init_sims() 
  File "/usr/local/lib/python2.7/dist-packages/gensim/models/word2vec.py", line 827, in init_sims 
    self.syn0norm = (self.syn0 / sqrt((self.syn0 ** 2).sum(-1))[..., newaxis]).astype(REAL) 
Run Code Online (Sandbox Code Playgroud)

我有一台配备60GB Ram和70GB交换机的Ubuntu机器.我检查了内存分配(在htop中),我发现永远不会完全使用内存.我还设置了无限的可能在python中锁定在内存中的最大地址空间:

resource.getrlimit(resource.RLIMIT_MEMLOCK)
Run Code Online (Sandbox Code Playgroud)

有人可以解释这个MemoryError的原因吗?在我看来,可用的内存应该足以进行这种计算.可能是python或OS中的一些内存限制?

提前致谢!

python memory gensim word2vec

5
推荐指数
1
解决办法
3226
查看次数

标签 统计

gensim ×1

memory ×1

python ×1

word2vec ×1