我正在尝试训练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
答案 0 :(得分:0)
在gensim 3.5.0之前,所报告的损失值可能不是很明智,仅将每次调用train()的计数重置,而不是将每个内部纪元重置。此问题中有一些修复程序:
https://github.com/RaRe-Technologies/gensim/pull/2135
您正在使用哪个版本的gensim,您的代码在做什么以收集损失数据?