Gensim Doc2vecモデルを使用して文書ベクトルを訓練します。 私は「良い」という言葉の表現を印刷しましたが、私はすべての時代を見つけました。私はid '3'の文書の表現を印刷していましたが、すべての時代が異なります!Doc2vec Gensim:各エポック中に単語埋め込みが更新されない
私のコードは以下の通りです。何が起こっているのかわかりません。
model = gensim.models.Doc2Vec(dm = 0, alpha=0.1, size= 20, min_alpha=0.025)
model.build_vocab(documents)
print ('Building model....',(time4-time3))
for epoch in range(10):
model.train(documents)
print('Now training epoch %s' % epoch)
print(model['good'])
print(model.docvecs[str(3)])
私はあなたが暗示しているものを得られませんでした。 (1)各エポックにおいて、単語ベクトルはランダムに開始するのではなく、単語ベクトルの前の値から開始する。第1のエポックにおいてのみ、ワードベクトルはランダムから始まる。 – kampta
"train"関数を呼び出すたびに、単語ベクトルは単語ベクトルのランダム値を取得します。言い換えれば、 "train"関数は、最初からトレーニングモデルを開始し、単語ベクトルはランダムな値を得る。 –
それは正しいです。 'train'関数は最初からトレーニングモデルを開始します。 'train'関数の' seed'パラメータのデフォルト値は0に固定されているので、トレーニングを開始するたびに単語ベクトルは同じランダム値に初期化され、 'n epochs 'の後には同じベクトルが得られます実験は再現可能です。 – kampta