【问题标题】:What does epochs mean in Doc2Vec and train when I have to manually run the iteration?当我必须手动运行迭代时,时期在 Doc2Vec 和训练中意味着什么?
【发布时间】:2018-07-09 12:32:10
【问题描述】:

我试图理解Doc2Vec 函数中的epochs 参数和train 函数中的epochs 参数。

在下面的代码 sn-p 中,我手动设置了一个 4000 次迭代的循环。是否需要或将 4000 作为 Doc2Vec 中的 epochs 参数传递足够?还有Doc2Vec 中的epochstrain 中的纪元有何不同?

documents = Documents(train_set)

model = Doc2Vec(vector_size=100, dbow_words=1, dm=0, epochs=4000,  window=5,
                seed=1337, min_count=5, workers=4, alpha=0.001, min_alpha=0.025)

model.build_vocab(documents)

for epoch in range(model.epochs):
    print("epoch "+str(epoch))
    model.train(documents, total_examples=total_length, epochs=1)
    ckpnt = model_name+"_epoch_"+str(epoch)
    model.save(ckpnt)
    print("Saving {}".format(ckpnt))

另外,权重如何以及何时更新?

【问题讨论】:

  • @Downvoter 在没有评论如何改进问题的情况下投反对票真是令人沮丧

标签: python gensim doc2vec


【解决方案1】:

您不必手动运行迭代,并且您不应该多次致电train(),除非您是专家并且出于特定原因需要这样做。如果您在一些您正在复制的在线示例中看到了这种技术,那么该示例可能已经过时并且具有误导性。

调用train() 一次,将您的首选传递次数作为epochs 参数。

另外,不要使用较低的起始 alpha 学习率 (0.001),然后上升到 25 倍大的 min_alpha 值 (0.025) - 这不是应该的工作,大多数用户根本不需要调整alpha 相关的默认值。 (同样,如果您是从某处的在线示例中获得此信息的 - 这是一个不好的示例。让他们知道他们给出了不好的建议。)

此外,4000 个训练 epoch 大得离谱。在处理数万到数百万个文档时,10-20 的值在已发表的作品中很常见。如果您的数据集较小,它可能不适用于Doc2Vec,但有时更多的时期(或更小的vector_size)仍然可以从小数据中学习一些可概括的东西 - 但仍然希望使用接近几十个时期(而不是数千个) .

与 gensim 捆绑在一起的 doc2vec-lee.ipynb Jupyter notebook 是一个很好的介绍(尽管它的数据集很小,几乎无法与 Doc2Vec 一起使用),也可以在以下网址在线查看:

https://github.com/RaRe-Technologies/gensim/blob/develop/docs/notebooks/doc2vec-lee.ipynb

祝你好运!

【讨论】:

  • 好的。什么时候需要多次致电train
  • 需要进行一些训练中期记录或分析或调整的高级用户可能会将训练拆分为多个train() 调用,并非常有意识地管理每个调用的有效alpha 参数。一个非常高级的用户在已经训练过的模型上尝试进一步训练,也可以尝试它,意识到可能涉及的所有模糊的质量/平衡问题。但基本上,除非您已经明确知道为什么需要这样做,以及这样做的好处和风险,否则这是一个坏主意。
  • 能否也解释一下参数vector_size?如何确定这个属性的值?
  • 它是创建的 word-vectors/doc-vectors 的维度大小,典型值范围从 100(gensim 默认值,用于速度和内存紧凑性)到 1000。值 300 -400 似乎对于词向量特别常见。了解什么最适合您的数据/目标的唯一方法是搜索不同的值,使用严格的可重复评估对每个选项进行评分。只有当您拥有 大量 数据、RAM 和训练时间时,更大的值才有意义。 (如果处理几百或几千个文本的玩具大小的示例,即使是 100 维也可能太多了。)
猜你喜欢
  • 1970-01-01
  • 2021-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-25
  • 2018-08-26
相关资源
最近更新 更多