[英]gensim word2vec - array dimensions in updating with online word embedding
來自gensim 0.13.4.1的Word2Vec在運行中更新單詞向量不起作用。
model.build_vocab(sentences, update=False)
工作正常; 然而,
model.build_vocab(sentences, update=True)
才不是。
我正在使用這個網站試圖模仿他們所做的事情; 因此我在某些時候使用以下腳本:
model = gensim.models.Word2Vec()
sentences = gensim.models.word2vec.LineSentence("./text8/text8")
model.build_vocab(sentences, keep_raw_vocab=False, trim_rule=None, progress_per=10000, update=False)
model.train(sentences)
但是,當使用update=False
運行時,使用update=True
會給我以下回溯:
Traceback (most recent call last):
File "word2vecAttempt.py", line 34, in <module>
model.build_vocab(sentences, progress_per=10000, update=True)
File "/home/brownc/anaconda3/lib/python3.5/site-packages/gensim/models/word2vec.py", line 535, in build_vocab
self.finalize_vocab(update=update) # build tables & arrays
File "/home/brownc/anaconda3/lib/python3.5/site-packages/gensim/models/word2vec.py", line 708, in finalize_vocab
self.update_weights()
File "/home/brownc/anaconda3/lib/python3.5/site-packages/gensim/models/word2vec.py", line 1070, in update_weights
self.wv.syn0 = vstack([self.wv.syn0, newsyn0])
File "/home/brownc/anaconda3/lib/python3.5/site-packages/numpy/core/shape_base.py", line 230, in vstack
return _nx.concatenate([atleast_2d(_m) for _m in tup], 0)
ValueError: all the input array dimensions except for the concatenation axis must match exactly
我能夠重現你的錯誤。 我認為當模型尚未訓練時,你正在調用update=True
。 您應該只在預先訓練后調用它。
這有效:
import gensim
model = gensim.models.Word2Vec()
sentences = gensim.models.word2vec.LineSentence("text8")
model.build_vocab(sentences, update=False)
model.train(sentences)
model.build_vocab(sentences, update=True)
model.train(sentences)
但這會失敗:
import gensim
model = gensim.models.Word2Vec()
sentences = gensim.models.word2vec.LineSentence("text8")
model.build_vocab(sentences, update=True)
model.train(sentences)
ValueError: all the input array dimensions except for the concatenation axis must match exactly
使用最新版本的gensim 0.13.4.1。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.