gpt4 book ai didi

python - 确保 gensim 为同一数据的不同运行生成相同的 Word2Vec 模型

转载 作者:太空狗 更新时间:2023-10-29 22:07:40 25 4
gpt4 key购买 nike

LDA model generates different topics everytime i train on the same corpus ,通过设置 np.random.seed(0),LDA 模型将始终以完全相同的方式进行初始化和训练。

gensim 的 Word2Vec 模型是否相同?通过将随机种子设置为常量,在同一数据集上的不同运行会产生相同的模型吗?

但奇怪的是,它已经在不同的实例中为我提供了相同的向量。

>>> from nltk.corpus import brown
>>> from gensim.models import Word2Vec
>>> sentences = brown.sents()[:100]
>>> model = Word2Vec(sentences, size=10, window=5, min_count=5, workers=4)
>>> model[word0]
array([ 0.04985042, 0.02882229, -0.03625415, -0.03165979, 0.06049283,
0.01207791, 0.04722737, 0.01984878, -0.03026265, 0.04485954], dtype=float32)
>>> model = Word2Vec(sentences, size=10, window=5, min_count=5, workers=4)
>>> model[word0]
array([ 0.04985042, 0.02882229, -0.03625415, -0.03165979, 0.06049283,
0.01207791, 0.04722737, 0.01984878, -0.03026265, 0.04485954], dtype=float32)
>>> model = Word2Vec(sentences, size=20, window=5, min_count=5, workers=4)
>>> model[word0]
array([ 0.02596745, 0.01475067, -0.01839622, -0.01587902, 0.03079717,
0.00586761, 0.02367715, 0.00930568, -0.01521437, 0.02213679,
0.01043982, -0.00625582, 0.00173071, -0.00235749, 0.01309298,
0.00710233, -0.02270884, -0.01477827, 0.01166443, 0.00283862], dtype=float32)
>>> model = Word2Vec(sentences, size=20, window=5, min_count=5, workers=4)
>>> model[word0]
array([ 0.02596745, 0.01475067, -0.01839622, -0.01587902, 0.03079717,
0.00586761, 0.02367715, 0.00930568, -0.01521437, 0.02213679,
0.01043982, -0.00625582, 0.00173071, -0.00235749, 0.01309298,
0.00710233, -0.02270884, -0.01477827, 0.01166443, 0.00283862], dtype=float32)
>>> exit()
alvas@ubi:~$ python
Python 2.7.11 (default, Dec 15 2015, 16:46:19)
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from nltk.corpus import brown
>>> from gensim.models import Word2Vec
>>> sentences = brown.sents()[:100]
>>> model = Word2Vec(sentences, size=10, window=5, min_count=5, workers=4)
>>> word0 = sentences[0][0]
>>> model[word0]
array([ 0.04985042, 0.02882229, -0.03625415, -0.03165979, 0.06049283,
0.01207791, 0.04722737, 0.01984878, -0.03026265, 0.04485954], dtype=float32)
>>> model = Word2Vec(sentences, size=20, window=5, min_count=5, workers=4)
>>> model[word0]
array([ 0.02596745, 0.01475067, -0.01839622, -0.01587902, 0.03079717,
0.00586761, 0.02367715, 0.00930568, -0.01521437, 0.02213679,
0.01043982, -0.00625582, 0.00173071, -0.00235749, 0.01309298,
0.00710233, -0.02270884, -0.01477827, 0.01166443, 0.00283862], dtype=float32)

那么默认的随机种子是固定的吗?如果是这样,默认的随机种子数是多少?还是因为我正在测试一个小数据集?

如果随机种子确实是固定的并且对相同数据的不同运行返回相同的向量,则非常感谢指向规范代码或文档的链接。

最佳答案

根据 Gensim 的文档,要执行完全确定性可重现的运行,您必须也将模型限制为单个工作线程,以消除操作系统线程调度中的顺序抖动。

对您的代码进行简单的参数编辑应该可以解决问题。

model = Word2Vec(sentences, size=10, window=5, min_count=5, workers=1)

关于python - 确保 gensim 为同一数据的不同运行生成相同的 Word2Vec 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34831551/

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