TensorFlow 0.12 wurde neulich veröffentlicht. Eine seiner Funktionen ist die Visualisierung eingebetteter Ausdrücke. Dies ermöglicht die interaktive Analyse hochdimensionaler Daten.
Das Folgende ist eine Visualisierung von MNIST. Das Bild unten ist ein Standbild, aber auf der offiziellen Website ist es eine schleimige Bewegung in 3 Dimensionen. Sie können sehen, wo es ist.
In diesem Artikel habe ich versucht, die Einbettungsvisualisierung über die Word2vec-Visualisierung zu verwenden. Zunächst werden wir von der Installation gehen.
Installieren Sie zuerst TensorFlow 0.12. Bitte installieren Sie auf der folgenden Seite.
Nach Abschluss der Installation werden wir die Visualisierung untersuchen.
Klonen Sie zuerst das Repository und führen Sie dann den folgenden Befehl aus, um es zu verschieben:
$ git clone https://github.com/tensorflow/tensorflow.git
$ cd tensorflow/models/embedding
Führen Sie den folgenden Befehl aus, um die Trainings- und Bewertungsdaten herunterzuladen:
$ wget http://mattmahoney.net/dc/text8.zip -O text8.zip
$ unzip text8.zip
$ wget https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/word2vec/source-archive.zip
$ unzip -p source-archive.zip word2vec/trunk/questions-words.txt > questions-words.txt
$ rm source-archive.zip
Nachdem wir die Daten haben, lernen wir den Wortvektor. Führen Sie den folgenden Befehl aus:
$ python word2vec_optimized.py --train_data=text8 --eval_data=questions-words.txt --save_path=/tmp/
Bitte warten Sie ungefähr eine Stunde, um zu lernen.
Es wird angezeigt, wenn das Lernen abgeschlossen ist. Starten Sie zunächst TensorBoard, indem Sie den folgenden Befehl ausführen:
$ tensorboard --logdir=/tmp/
Nach dem Start wird auf die angegebene Adresse zugegriffen. Wählen Sie dann die Registerkarte Einbetten, um den visualisierten Vektor anzuzeigen.
Als ich Word2vec visualisierte, konnte ich übrigens nicht verstehen, warum es zu viele Vokabeln gab.
Es scheint, dass Sie mit Metadaten das Wort selbst anstelle der Wort-ID anzeigen können.
Wenn ich die Registerkarte Einbetten auswähle, wird im Browser nichts angezeigt, und der folgende Fehler wird möglicherweise auf der Konsole angezeigt. Oder besser gesagt, es kam heraus.
File "/Users/user_name/venv/lib/python3.4/site-packages/tensorflow/tensorboard/plugins/projector/plugin.py", line 139, in configs
run_path_pairs.append(('.', self.logdir))
AttributeError: 'dict_items' object has no attribute 'append'
Ändern Sie in diesem Fall die Zeile 139 von ** tensorflow / tensorboard / plugins / projector / plugin.py ** des installierten TensorFlow wie folgt. Führen Sie dann TensorBoard erneut aus.
- run_path_pairs.append(('.', self.logdir))
+ run_path_pairs = [('.', self.logdir)]
Nach Auswahl eines bestimmten Knotens (Wortes) wurde Folgendes angezeigt, als ich "101 Punkte isolieren" auswählte.
Dies bedeutet, dass Sie 100 Wörter anzeigen, die dem ausgewählten Wort ähnlich sind. Um die Ähnlichkeit hier zu messen, können Sie die Kosinusähnlichkeit und den euklidischen Abstand verwenden. Sie können auch die Anzahl der angezeigten Wörter erhöhen oder verringern, indem Sie Nachbarn angeben.
Sie können auch mehrere Algorithmen zur Visualisierung verwenden.
Die Standardeinstellung ist PCA, Sie können jedoch auch T-SNE oder CUSTOM verwenden. Das Bild wird in 3D angezeigt, kann aber auch in 2D angezeigt werden.
Noch interessanter wäre es, wenn Sie ein Wort als Bezeichnung zuweisen könnten. Dieses Mal werde ich mich beeilen und eine Einführung wie diese behalten.
Recommended Posts