2017-12-20 5 views
0

Ich verwende das Doc2Vec-Modell in Gensim Python-Bibliothek.gensim doc2vec geben nicht festgestellten Ergebnis

Jedes Mal, wenn ich das Modell mit den gleichen Satzdaten füttere und den Parameter: seed von Doc2Vec auf eine feste Zahl einstelle, gibt das Modell verschiedene Vektoren an, nachdem das Modell erstellt wurde.

Zu Testzwecken brauche ich jedes Mal ein bestimmtes Ergebnis, wenn ich unveränderte Eingabedaten eingegeben habe. Ich habe viel gesucht und finde keinen Weg, das Ergebnis von Gensim unverändert zu lassen.

Gibt es etwas falsch in der Art, wie ich es verwende? Danke für die Antwort im Voraus.

Hier ist mein Code:

from gensim.models.doc2vec import Doc2Vec 
model = Doc2Vec(sentences, dm=1, dm_concat=1, size=100, window=5, hs=0, min_count=10, seed=64) 
result = model.docvecs 
+0

Bitte fügen Sie Ihren relevanten Code hinzu. –

+1

@Konafets Ich habe es hinzugefügt. – cramer

Antwort

1

Die Doc2Vec Algorithmus Verwendung des Zufalls sowohl bei der Initialisierung und Ausbildung macht und effizientes Multi-Threaded-Training stellt mehr Zufälligkeit, da die Chargen über mehrfachiger Fäden nicht notwendigerweise ausgebildet werden -gegeneinander in der gleichen Reihenfolge von Run-to-Run.

Wenn das Modell gut trainiert, sollte der Jitter in den Ergebnissen von Run-to-Run nicht groß sein, und die Qualität der Downstream-Assessments sollte nicht sehr variieren. Wenn die Qualität der Ergebnisse sehr unterschiedlich ist, gibt es wahrscheinlich andere Probleme mit der Anwendung des Algorithmus auf Ihre Daten oder Schulungen.

Separat: Sie möchten mit Sicherheit nicht den nicht standardmäßigen dm_concat=1-Modus verwenden. Es führt zu einem viel größeren, viel langsamer zu trainierenden Modell, und es gibt keine klaren öffentlichen Beispiele dafür, dass es diese zusätzlichen Kosten wert ist. (Ich würde es nur versuchen, wenn ich ein starkes Grundlinienergebnis von einfacheren Modi und sehr viel Daten und Zeit hätte.)

+0

vielen dank für ihre antwort. :) – cramer

Verwandte Themen