[PYTHON] Versuchen Sie, die in TensorFlow 0.12 hinzugefügte Visualisierung einzubetten

Einführung

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. embedding_visualization.png

In diesem Artikel habe ich versucht, die Einbettungsvisualisierung über die Word2vec-Visualisierung zu verwenden. Zunächst werden wir von der Installation gehen.

Installation

Installieren Sie zuerst TensorFlow 0.12. Bitte installieren Sie auf der folgenden Seite.

Nach Abschluss der Installation werden wir die Visualisierung untersuchen.

Lerne das Modell

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.

Einbettung in TensorBoard anzeigen

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 nichts angezeigt wird

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)]

Spielen Sie damit herum

Nach Auswahl eines bestimmten Knotens (Wortes) wurde Folgendes angezeigt, als ich "101 Punkte isolieren" auswählte.

スクリーンショット 2016-11-30 17.50.31.png

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. スクリーンショット 2016-11-30 18.18.57.png

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.

abschließend

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.

Referenz

Recommended Posts

Versuchen Sie, die in TensorFlow 0.12 hinzugefügte Visualisierung einzubetten
Versuchen Sie es mit verteiltem Tensorfluss
Versuchen Sie, Python mit pybind11 in ein C ++ - Programm einzubetten
Versuchen Sie gRPC in Python
Probieren Sie 9 Slices in Python aus
Versuchen Sie eine Regression mit TensorFlow
Einbettung der Maschinensprache in die Sprache C.
Versuchen Sie es mit TensorFlow
Clipping und Normalisierung in TensorFlow
Versuchen Sie LINE Notify mit Python
Korrigieren Sie zufällige Samen mit TensorFlow
Lassen Sie uns Yuma in Python 3 implementieren
Versuchen Sie TensorFlow MNIST mit RNN