2016-03-28 138 views
1

我在Ubuntu中使用gensim。版本是0.12.4。我的word2vec模型不一致。每次我基於相同的確切句子和相同的參數來建立模型時,它仍然具有不同的單詞表示。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[sentences[0][0]] 
array([ 0.04913874, 0.04574081, -0.07402877, -0.03270053, 0.06598952, 
     0.04157289, 0.05075986, 0.01770534, -0.03796235, 0.04594197], dtype=float32) 
>>> model = Word2Vec(sentences, size=10, window=5, min_count=5, workers=4) 
>>> model[sentences[0][0]] 
array([ 0.04907205, 0.04569579, -0.07379777, -0.03273782, 0.06579078, 
     0.04167712, 0.05083019, 0.01780009, -0.0378389 , 0.04578455], dtype=float32) 
>>> model = Word2Vec(sentences, size=10, window=5, min_count=5, workers=4) 
>>> model[sentences[0][0]] 
array([ 0.04906179, 0.04569826, -0.07382379, -0.03274316, 0.06583244, 
     0.04166647, 0.0508585 , 0.01777468, -0.03784611, 0.04578935], dtype=float32) 

我也試圖種子設置爲某個固定INT但這沒有似乎幫助。我也試圖重新安裝gensim也沒有幫助。

任何想法如何穩定我的模型?

+1

如果我可能說,你注意到不穩定性不足以傳播到任何顯著錯誤。小數點後三位或四位的變化總是小到可以忽略。還要注意,'float32'(實際上所有的浮點值)都表現出精確度的損失 - 這是在你首先看到的精度級別之間進行折衷的一個折衷。 –

+0

的差異實際上可能是顯着的。我發佈的例子使用了非常少量的數據。你可以通過僅使用1名工人來穩定模型,這會得到一致的結果 –

+0

真的嗎?你觀察到的最大差異是什麼?可以非常有用的知道。 –

回答