[PYTHON] Ich habe versucht, Tensorboard zu verwenden, ein Visualisierungstool für maschinelles Lernen

Einführung

Ich habe Tensorboard zum ersten Mal zum Zeichnen eines Diagramms verwendet und war von seiner Bequemlichkeit beeindruckt, daher werde ich es teilen. Das Deep Learning-Framework verwendete PyTorch.

Installation

Da ich Anaconda verwende, installieren Sie Tensorboard mit dem folgenden Befehl.

conda install tensorboard

Codierung

tb.py


import numpy as np
from torch.utils.tensorboard import SummaryWriter#Importieren Sie SummaryWriter, um Diagramme zu zeichnen

np.random.seed(1000)

x = np.random.randn(1000)

writer = SummaryWriter(log_dir="./logs")#Instanzgenerierung Geben Sie das zu speichernde Verzeichnis an

for i in range(1000):
    writer.add_scalar("x", x[i], i)#Wert schreiben
    writer.add_scalar("sin", np.sin(i), i)

writer.close()#schließen

Beachten Sie, dass der Dateiname *** tensorboard.py *** mit dem Modul abgedeckt wird und ein ImportError auftritt.

Kommentar

Einfach ausgedrückt, der obige Code zeichnet ein Array mit zufälligen Werten und einer Sin-Funktion.

SummaryWriter importieren

from torch.utils.tensorboard import SummaryWriter Import SummaryWriter, ein Modul, das zum Zeichnen von Diagrammen auf Tensorboard erforderlich ist.

Instanzgenerierung

writer = SummaryWriter(log_dir="./logs") Dadurch wird ein Protokollverzeichnis im aktuellen Verzeichnis erstellt und die Dateien für Tensorboard werden in diesen Protokollen gespeichert.

Wert zuweisen

Geben Sie den Wert des Arrays mit "writer.add_scalar (" x ", x [i], i)" ein. Es ist writer.add_scalar (tags, scalar_value, global_step), gibt den Namen des Diagramms durch Tags an, ersetzt den zu speichernden Wert durch scalar_value und gibt das Intervall der horizontalen Achse des Diagramms durch global_step an.

schließen

Schließen wir es zuletzt mit writer.close ().

Schauen Sie sich die Grafik an

Führen Sie tb.py aus

Lassen Sie uns den obigen Code ausführen. Das Diagramm wird gezeichnet.

python tb.py

Schauen Sie sich die Grafik an

Führen Sie den folgenden Befehl aus. Geben Sie das mit --logdir =" " `gespeicherte Verzeichnis an. Diesmal ist es ". / Logs".

tensorboard --logdir="./logs"

Anschließend wird die folgende Anweisung an das Terminal ausgegeben.

TensorBoard 2.2.1 at http://localhost:8000/ (Press CTRL+C to quit)

Der lokale Server wird gestartet. Geben Sie daher "http: // localhost: 8000 /" in Ihren Browser ein.

スクリーンショット 2020-08-12 22.48.19.png

Wenn Sie sich Chrom ansehen, können Sie sehen, dass das Diagramm ordentlich dargestellt wird.

Siehe die Grafik vor ssh

Deep Learning-Code erfordert viel Berechnung und nimmt auf dem lokalen PC (dem vorhandenen PC) sehr viel Zeit in Anspruch Standardmäßig wird ssh an die GPU des Servers im Labor gesendet und der Code auf dem Server ausgeführt. Wie versuchen Sie dann in einem solchen Fall das auf dem Remote-Server auf dem lokalen PC gezeichnete Diagramm?

Ssh zum Remote-Server

Verwenden Sie bei ssh die Option -L, um den lokalen Host des Clients (lokaler PC): 9000 mit dem Benutzernamen des Remote-Servers @ Server-IP-Adresse: 8000 zu verbinden.

@Lokaler PC


ssh Benutzername@IP-Adresse des Servers-L 9000:localhost:8000

Führen Sie tb.py auf dem Remote-Server aus

Lassen Sie uns den Code ausführen, der das Diagramm auf dem sshed-Remoteserver zeichnet.

@Remote-Server


python tb.py

Führen Sie Tensorboard aus

Führen Sie den Befehl aus, um das Diagramm auf dem sshed-Remoteserver anzuzeigen. Da der zum Zeitpunkt von ssh mit dem lokalen PC verbundene Port 8000 ist, geben wir 8000 mit der Option --port an und führen ihn aus.

@Remote-Server


tensorboard --logdir="./logs" --port 8000

Die folgende Anweisung wird ausgegeben.

@Remote-Server


TensorBoard 2.2.1 at http://localhost:8000/ (Press CTRL+C to quit)

Schauen Sie sich die Grafik an

Als ich früher "http: // localhost: 8000 /" in den Browser eingegeben habe, konnte ich das Diagramm sehen, diesmal jedoch nicht.

Dieses Mal habe ich also Port 8000 des Remote-Servers und Port 9000 des lokalen PCs verbunden Wenn Sie im Browser Ihres lokalen PCs "http: // localhost: 9000 /" eingeben, wird das gleiche Diagramm wie zuvor angezeigt.

スクリーンショット 2020-08-12 22.48.19.png

Zusammenfassung

Ich habe mit Tensorboard in PyTorch ein Diagramm gezeichnet. Ich habe auch eingeführt, wie das Diagramm des Codes angezeigt wird, der auf dem Remote-Server des SSH-Ziels auf dem lokalen PC gesendet wurde. Ich möchte dieses Tensorboard und ssh-L auch für Deep Learning verwenden.

Recommended Posts

Ich habe versucht, Tensorboard zu verwenden, ein Visualisierungstool für maschinelles Lernen
[Python] Ich habe einen Klassifikator für Iris erstellt [Maschinelles Lernen]
Konstruktionsnotiz für eine maschinelle Lernumgebung von Python
Ich habe versucht, das Bild mithilfe von maschinellem Lernen zu komprimieren
Ich habe versucht, verschiedene Methoden für maschinelles Lernen (Vorhersagemodell) mithilfe von Scicit-Learn zu implementieren
Ich habe maschinelles Lernen mit liblinear versucht
Ich habe versucht, ein Deep-Learning-Modell von TensorFlow mit TensorFlow Serving zu hosten
[TF] Ich habe versucht, das Lernergebnis mit Tensorboard zu visualisieren
Ich habe versucht, mit PyBrain verstärkt zu lernen
Ich habe versucht, mit Theano tief zu lernen
Ich habe versucht, die Genauigkeit von Modellen für maschinelles Lernen mit Kaggle als Thema zu vergleichen.
Erstellt ein Tool, mit dem Sie bequem Parameter für Modelle des maschinellen Lernens festlegen können
Ich habe versucht, ○ ✕ mit TensorFlow zu spielen
Ich habe versucht, mit einer Schildkröte eine Linie zu ziehen
[Kaggle] Ich habe versucht, Ensemble mit LightGBM zu lernen
Ich habe das OSS-Visualisierungstool superset ausprobiert
Ich habe versucht, pipenv zu verwenden, machen Sie sich also eine Notiz
Erstellen einer Entwicklungsumgebung für maschinelles Lernen
[Visualisierung] Ich habe versucht, Bokeh / plotly zu verwenden! 【Memorandum】
[Ver1.3.1 Update] Ich habe DataLiner erstellt, eine Datenvorverarbeitungsbibliothek für maschinelles Lernen.
[ML-Aents] Ich habe versucht, maschinelles Lernen mit Unity und TensorFlow of Python (v0.11β-kompatibel) zu lernen.
Ich habe mit DASH eine Visualisierungssite für das BIP (gesamte Inlandsproduktion) erstellt!
Ich habe versucht, Gitarrenakkorde in Echtzeit mithilfe von maschinellem Lernen zu klassifizieren
Ich habe versucht, eval (a, b) für Fibonacci zu verwenden, aber es war nicht schnell
Eine Geschichte über einfaches maschinelles Lernen mit TensorFlow
vprof - Ich habe versucht, den Profiler für Python zu verwenden
Ich habe ein nützliches Tool für Digital Ocean erstellt
Ich habe versucht, Pythonect, eine Programmiersprache für den Datenfluss, zu verwenden.
Ich habe versucht, eine CSV-Datei mit Python zu lesen
Ich habe versucht, Firebase für Djangos Cache-Server zu verwenden
Ich habe versucht, alembic auszuführen, ein Migrationstool für Python
Ich habe versucht, die Datenbank (sqlite3) mit kivy zu verwenden
Ich habe ein ○ ✕ Spiel mit TensorFlow gemacht
Ich habe den Deep Learning Framework Chainer installiert
[Python] Deep Learning: Ich habe versucht, Deep Learning (DBN, SDA) ohne Verwendung einer Bibliothek zu implementieren.
Ich habe versucht, die Veränderung der Schneemenge für 2 Jahre durch maschinelles Lernen vorherzusagen
Ich habe versucht, das Bild zu verarbeiten und zu transformieren und die Daten für maschinelles Lernen zu erweitern
Erstellen eines Positionsschätzungsmodells für den Intelligenzwettbewerb menschlicher Wölfe mithilfe von maschinellem Lernen
Ein Memorandum über Methoden, die häufig beim maschinellen Lernen mit Scikit-Learn (für Anfänger) verwendet werden.
Ich habe versucht, Argparse zu verwenden
Ich habe versucht, anytree zu verwenden
Ich habe versucht, aiomysql zu verwenden
Ich habe versucht, Summpy zu verwenden
Ich habe versucht, Coturn zu verwenden
Ich habe versucht, "Anvil" zu verwenden.
Ich habe versucht, Hubot zu verwenden
Ich habe versucht, ESPCN zu verwenden
Ich habe versucht, openpyxl zu verwenden
Ich habe versucht, tief zu lernen
Ich habe versucht, Ipython zu verwenden
Ich habe versucht, PyCaret zu verwenden
Ich habe versucht, Cron zu verwenden
Ich habe versucht, ngrok zu verwenden
Ich habe versucht, face_recognition zu verwenden
Ich habe versucht, Jupyter zu verwenden
Ich habe versucht, die Lernfunktion im neuronalen Netzwerk sorgfältig zu verstehen, ohne die Bibliothek für maschinelles Lernen zu verwenden (erste Hälfte).
Ich habe versucht, doctest zu verwenden