如何从预训练的模型中获得Gensim中word2vec的训练损失?

时间:2019-03-30 06:23:49

标签: gensim word2vec

我有一些预先训练的word2vec模型,我想使用相同的语料库对其进行评估。给定模型转储文件和内存中的语料库,有什么办法可以使我得到原始训练损失?

1 个答案:

答案 0 :(得分:0)

gensim的Word2Vec(及相关模型)的培训损失报告是一项新功能,尚未完全满足大多数人的期望。

例如,至少通过gensim 3.7.1(2019年1月),您可以检索自上次调用train()之后的总损失(跨越多个时期)。某些pending changes可能最终会改变这一点。

只有在创建模型时通过compute_loss参数请求时,才进行损耗统计。因此,如果模型最初未配置此设置,则其中不会包含有关先前训练的损失数据。

您可能会篡改已加载的模型w2v_model.compute_loss = False,以便进一步调用train()(使用相同或新数据)将收集丢失数据。但是,请注意,此类培训还将针对当前数据更新模型。

您还可以查看score()方法,该方法可用于某些模型模式,该方法报告批次新文本的损失相关编号,无需即可更改模型。从本质上讲,它可以用作评估新文本是否“看起来像”原始培训数据的一种方式。有关更多信息,请参见方法文档,包括指向激励性学术论文和示例笔记本的链接:

https://radimrehurek.com/gensim/models/word2vec.html#gensim.models.word2vec.Word2Vec.score