用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)]
1个回答
这个我知道,的确有点小奇葩。。。
你需要确保workers=1,两个模型有一样seed的模型才会完全一样。不然的话,会因为并行计算的问题,两个就又乱了。
谢谢,果然workers=1就可以了
-
剪叔
2017-10-30 22:29