我正在尝试训练一个 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
在 gensim 3.5.0 之前,报告的损失值可能不是很明智,只是重置每次调用 train(( 的计数,而不是每个内部纪元。本期即将推出一些修复程序:
https://github.com/RaRe-Technologies/gensim/pull/2135
你使用的是哪个版本的gensim,你的代码在做什么来收集损失数据?