gpt4 book ai didi

python - gensim - Doc2Vec : Difference iter vs. 纪元

转载 作者:行者123 更新时间:2023-11-28 17:06:54 25 4
gpt4 key购买 nike

阅读 Doc2Vec documentation of gensim 时,我对某些选项感到有点困惑。比如Doc2Vec的构造函数有一个参数iter:

iter (int) – Number of iterations (epochs) over the corpus.

为什么 train 方法也有一个类似的参数,叫做 epochs

epochs (int) – Number of iterations (epochs) over the corpus.

两者有什么区别?文档中还有一段:

To avoid common mistakes around the model’s ability to do multiple training passes itself, an explicit epochs argument MUST be provided. In the common and recommended case, where train() is only called once, the model’s cached iter value should be supplied as epochs value.

但我真的不明白为什么构造函数需要一个iter参数以及应该为它提供什么。

编辑:

我刚刚看到也可以直接在构造函数中指定语料库,而不是单独调用 train()。所以我认为在这种情况下,将使用 iter,否则使用 epochs。对吗?

如果是这样,在构造函数中指定语料库和手动调用 train() 有什么区别?为什么会选择其中之一?

编辑 2:

虽然在文档中没有提到,iter 现在作为 Doc2Vec 的参数已经贬值了。它被重命名为 epochs 以与 train() 的参数保持一致。培训似乎可以解决这个问题,尽管我在 MemoryErrors 上苦苦挣扎。 .

最佳答案

构造函数中的参数最初称为 iter,当通过单个构造函数调用执行所有操作时——在构造函数中提供语料库——该值将仅用作训练遍数。

train() 的参数被扩展并成为强制性参数以避免常见错误时,术语 epochs 被选择为更具描述性,并且与 不同iter 值。

当您在构造函数中指定语料库时,build_vocab()train() 将作为构造的一部分自动为您调用。对于大多数简单用途,这很好。

但是,如果你让这些自动调用发生,你就失去了单独计时步骤的机会,或者在开始训练之前篡改词汇步骤的结果,或者多次调用 train()次(这通常是个坏主意,除非你确定你知道自己在做什么)。

关于python - gensim - Doc2Vec : Difference iter vs. 纪元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50390582/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com