J'utilise le modèle Gensim Doc2vec pour former des vecteurs de document. J'ai imprimé des représentations pour le mot "bien", mais j'ai trouvé toutes les époques, je n'ai pas mis à jour! Alors que j'ai imprimé des représentations pour le document avec l'ID '3', chaque époque différente!Doc2vec Gensim: les plongements de mots ne se mettent pas à jour à chaque époque
Mes codes sont ci-dessous, ne savent pas ce qui se passe.
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)])
Je n'ai pas compris ce que vous vouliez dire. (1) A chaque époque, les vecteurs de mots ne partent pas au hasard, mais à partir de la valeur précédente du mot vecteur. Seulement à la première époque, les vecteurs de mots partent du hasard. – kampta
chaque fois que vous appelez la fonction "train", le vecteur de mot obtient la valeur aléatoire pour les vecteurs de mot. dans un autre mot "train" fonction démarrer le modèle de formation à partir du vecteur de début et de mot obtenir une valeur aléatoire. –
C'est correct. La fonction «train» démarre le modèle d'entraînement depuis le début. Puisque la valeur par défaut du paramètre 'seed' de la fonction' train' est fixée à 0, chaque fois que vous commencez à vous entraîner, les vecteurs de mots sont initialisés aux mêmes valeurs aléatoires, et après n épochs, vous obtenez les mêmes vecteurs (essentiellement les expériences sont reproductibles) – kampta