gensim训练出的Word2Vec模型每次都不一样

  统计/机器学习 自然语言处理 Python 人工神经网络
1

用gensim训练出来的word2vec模型,虽然设置了随机seed,但是每次得到的模型还是不一样。

有谁遇到过类似的问题吗?


代码如下


model1 =  gensim.models.word2vec.Word2Vec(text, size=50, seed=1, window=3, workers=4)
model2 =  gensim.models.word2vec.Word2Vec(text, size=50, seed=1, window=3, workers=4)
print model1.wv.most_similar(positive=['shanghai'])[:2]
print model2.wv.most_similar(positive=['shanghai'])[:2]

得到的结果是

[('beijing', 0.9490054249763489), ('seoul', 0.9238297343254089)]
[('beijing', 0.9414007663726807), ('taipei', 0.9180472493171692)]


 

剪叔   2017-10-29 13:01



   1个回答 
2

这个我知道,的确有点小奇葩。。。

你需要确保workers=1,两个模型有一样seed的模型才会完全一样。不然的话,会因为并行计算的问题,两个就又乱了。


数据痴汉   2017-10-30 11:08

谢谢,果然workers=1就可以了 - 剪叔   2017-10-30 22:29


相关问题

word2vec的网络里为什么没有bias偏置项   1回答

自然语言处理中的Tf-idf是什么意思   1回答

python里怎么把中文字符串转化为成list   1回答

文本处理中的tf是什么意思?如何计算?   1回答

用python统计字符串中空格的个数   3回答

自然语言处理中的分词是什么意思?   1回答

python去掉中文文本中所有的标点符号   3回答

请问NLP中这种编码方式有没有什么术语?   1回答

NLP中的hashing trick是什么?   1回答

laplace光滑什么意思   1回答

keras中怎么增加Leaky relu的激活层   1回答

LeakyReLu是什么意思?   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!