[PYTHON] J'ai essayé d'utiliser Tensorboard, un outil de visualisation pour l'apprentissage automatique

introduction

J'ai utilisé Tensorboard pour la première fois pour dessiner un graphique et j'ai été impressionné par sa commodité, je vais donc le partager. Le framework Deep Learning utilisait PyTorch.

Installation

Puisque j'utilise Anaconda, installez Tensorboard avec la commande suivante.

conda install tensorboard

codage

tb.py


import numpy as np
from torch.utils.tensorboard import SummaryWriter#Importer SummaryWriter pour dessiner des graphiques

np.random.seed(1000)

x = np.random.randn(1000)

writer = SummaryWriter(log_dir="./logs")#Génération d'instance Spécifiez le répertoire à enregistrer

for i in range(1000):
    writer.add_scalar("x", x[i], i)#Écrire la valeur
    writer.add_scalar("sin", np.sin(i), i)

writer.close()#Fermer

Notez que si le nom du fichier est *** tensorboard.py ***, il sera couvert par le module et une erreur d'importation se produira.

Commentaire

En termes simples, le code ci-dessus trace un tableau avec des valeurs aléatoires et une fonction sin.

Importer SummaryWriter

from torch.utils.tensorboard import SummaryWriter Import SummaryWriter, qui est un module requis pour dessiner des graphiques sur Tensorboard.

Génération d'instance

writer = SummaryWriter(log_dir="./logs") Cela créera un répertoire de journaux dans le répertoire actuel et les fichiers pour Tensorboard seront enregistrés dans ces journaux.

Attribuer une valeur

Entrez les valeurs du tableau avec writer.add_scalar (" x ", x [i], i). Il s'agit de writer.add_scalar (tags, scalar_value, global_step), spécifiez le nom du graphique avec des tags, remplacez la valeur à enregistrer par scalar_value, et spécifiez l'intervalle de l'axe horizontal du graphique par global_step.

Fermer

Fermons-le en dernier avec writer.close ().

Regardez le graphique

Exécutez tb.py

Exécutons le code ci-dessus. Le graphique est dessiné.

python tb.py

Regardez le graphique

Exécutez la commande suivante. Spécifiez le répertoire enregistré par --logdir =" " . Cette fois, c'est . / Logs`.

tensorboard --logdir="./logs"

Ensuite, l'instruction suivante sera envoyée au terminal.

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

Le serveur local sera lancé, tapez donc «http: // localhost: 8000 /» dans votre navigateur.

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

Si vous regardez Chrome, vous pouvez voir que le graphique est parfaitement tracé.

Voir le graphique avant ssh

Le code de Deep Learning nécessite beaucoup de calculs et prend énormément de temps sur le PC local (le PC à portée de main), donc La valeur par défaut est de ssh sur le GPU du serveur dans le laboratoire et d'exécuter le code sur le serveur. Alors, comment essayez-vous le graphique dessiné sur le serveur distant sur le PC local dans un tel cas?

Ssh vers le serveur distant

Lorsque vous effectuez ssh, utilisez l'option -L pour connecter l'hôte local du client (PC local): 9000 au nom d'utilisateur du serveur distant @ adresse IP du serveur: 8000.

@PC local


nom d'utilisateur ssh@Adresse IP du serveur-L 9000:localhost:8000

Exécutez tb.py sur un serveur distant

Exécutons le code qui dessine le graphique sur le serveur distant sshed.

@Serveur distant


python tb.py

Exécuter Tensorboard

Exécutons la commande pour voir le graphique sur le serveur distant sshed. Puisque le port connecté au PC local au moment de ssh est 8000, spécifions 8000 avec l'option --port et exécutons-le.

@Serveur distant


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

L'instruction suivante est sortie.

@Serveur distant


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

Regardez le graphique

Quand j'ai entré «http: // localhost: 8000 /» plus tôt dans le navigateur, je pouvais voir le graphique, mais cette fois je ne peux pas.

Cette fois, j'ai connecté le port 8000 du serveur distant et le port 9000 du PC local, donc Si vous entrez http: // localhost: 9000 / dans le navigateur de votre PC local, vous pouvez voir le même graphique qu'auparavant.

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

Résumé

J'ai dessiné un graphique avec Tensorboard dans PyTorch. J'ai également présenté comment afficher le graphique du code qui a été envoyé sur le serveur distant de la destination ssh sur le PC local. J'aimerais également utiliser ce Tensorboard et ssh -L pour le Deep Learning.

Recommended Posts

J'ai essayé d'utiliser Tensorboard, un outil de visualisation pour l'apprentissage automatique
[Python] J'ai créé un classificateur pour les iris [Machine learning]
Mémo de construction d'environnement d'apprentissage automatique par Python
J'ai essayé de compresser l'image en utilisant l'apprentissage automatique
J'ai essayé d'implémenter diverses méthodes d'apprentissage automatique (modèle de prédiction) en utilisant scicit-learn
J'ai essayé l'apprentissage automatique avec liblinear
J'ai essayé d'héberger un modèle d'apprentissage en profondeur de TensorFlow à l'aide de TensorFlow Serving
[TF] J'ai essayé de visualiser le résultat de l'apprentissage en utilisant Tensorboard
J'ai essayé l'apprentissage par renforcement avec PyBrain
J'ai essayé l'apprentissage en profondeur avec Theano
J'ai essayé de comparer la précision des modèles d'apprentissage automatique en utilisant kaggle comme thème.
Création d'un outil qui facilite la définition des paramètres des modèles d'apprentissage automatique
J'ai essayé de jouer au jeu ○ ✕ en utilisant TensorFlow
J'ai essayé de dessiner une ligne en utilisant une tortue
[Kaggle] J'ai essayé l'apprentissage d'ensemble avec LightGBM
J'ai essayé l'outil de visualisation OSS, sur-ensemble
J'ai essayé d'utiliser pipenv, alors prenez note
Créer un environnement de développement pour l'apprentissage automatique
[Visualisation] J'ai essayé d'utiliser Bokeh / plotly! 【mémorandum】
[Mise à jour Ver1.3.1] J'ai créé une bibliothèque de prétraitement de données DataLiner pour l'apprentissage automatique
[ML-Aents] J'ai essayé l'apprentissage automatique en utilisant TensorFlow de Unity et Python (compatible v0.11β)
J'ai créé un site de visualisation du PIB (production nationale totale) en utilisant DASH!
J'ai essayé de classer les accords de guitare en temps réel en utilisant l'apprentissage automatique
J'ai essayé d'utiliser eval (a, b) pour Fibonacci, mais ce n'était pas rapide
Une histoire sur l'apprentissage automatique simple avec TensorFlow
vprof - J'ai essayé d'utiliser le profileur pour Python
J'ai créé un outil utile pour Digital Ocean
J'ai essayé d'utiliser Pythonect, un langage de programmation de flux de données.
J'ai essayé de lire un fichier CSV en utilisant Python
J'ai essayé d'utiliser Firebase pour le serveur de cache de Django
J'ai essayé d'exécuter alembic, un outil de migration pour Python
J'ai essayé d'utiliser la base de données (sqlite3) avec kivy
J'ai créé un jeu ○ ✕ avec TensorFlow
J'ai installé le framework Deep Learning Chainer
[Python] Deep Learning: J'ai essayé d'implémenter Deep Learning (DBN, SDA) sans utiliser de bibliothèque.
J'ai essayé de prédire l'évolution de la quantité de neige pendant 2 ans par apprentissage automatique
J'ai essayé de traiter et de transformer l'image et d'élargir les données pour l'apprentissage automatique
Création d'un modèle d'estimation de position pour la compétition d'intelligence humaine de loup à l'aide de l'apprentissage automatique
Un mémorandum de méthode souvent utilisé dans l'apprentissage automatique utilisant scikit-learn (pour les débutants)
J'ai essayé d'utiliser argparse
J'ai essayé d'utiliser anytree
J'ai essayé d'utiliser aiomysql
J'ai essayé d'utiliser Summpy
J'ai essayé d'utiliser coturn
J'ai essayé d'utiliser "Anvil".
J'ai essayé d'utiliser Hubot
J'ai essayé d'utiliser ESPCN
J'ai essayé d'utiliser openpyxl
J'ai essayé le deep learning
J'ai essayé d'utiliser Ipython
J'ai essayé d'utiliser PyCaret
J'ai essayé d'utiliser cron
J'ai essayé d'utiliser ngrok
J'ai essayé d'utiliser face_recognition
J'ai essayé d'utiliser Jupyter
J'ai essayé de comprendre attentivement la fonction d'apprentissage dans le réseau de neurones sans utiliser la bibliothèque d'apprentissage automatique (première moitié)
J'ai essayé d'utiliser doctest