gensim word2vec中增加工作者线程的效果

时间:2018-10-10 15:13:01

标签: multithreading gensim word2vec

我正在尝试训练gensim sgns模型,并且在此过程中,我计算出的损失为

loss = model.running_training_loss / model.corpus_count, 

但是,我注意到,如果我更改工作线程,则在保持所有其他参数不变的情况下会遭受不同的损失。特别是如果我的工作线程数为1,则损失会非常大;如果增加线程数,则损失会更少。一个实例

thread  loss
worker=1  20.40519721
worker=10   2.714875407
worker=16  1.239528453

1 个答案:

答案 0 :(得分:0)

在gensim 3.5.0之前,所报告的损失值可能不是很明智,仅将每次调用train()的计数重置,而不是将每个内部纪元重置。此问题中有一些修复程序:

https://github.com/RaRe-Technologies/gensim/pull/2135

您正在使用哪个版本的gensim,您的代码在做什么以收集损失数据?