[PYTHON] Essayez d'utiliser W & B

Qu'est-ce que W & B

W&B La version Web de la carte tensorielle. Vous pouvez voir les différences sur la page en ligne, et vous pouvez également enregistrer les résultats d'anciens tests. Il s'agit d'un site pratique pour enregistrer les journaux d'apprentissage automatique et afficher les résultats.

J'écrirai un article faisant référence à la page suivante. wandb Quickstart

installer

Utilisez pip pour installer la bibliothèque wandb.

pip install wandb

Puisqu'il s'agit d'une application Web, l'inscription des membres est requise. Capacité limitée, mais gratuit pour les étudiants et les universitaires. Vous pouvez vous inscrire à partir de la page suivante. Je peux le faire avec mon compte github, donc j'ai pu le faire tout de suite.

Page d'inscription des membres

Au terminal de l'environnement à utiliser ensuite

wandb login

Ensuite, la page suivante apparaîtra.

wandb: You can find your API key in your browser here: https://app.wandb.ai/authorize
wandb: Paste an API key from your profile and hit enter:

Lors de l'accès à la page https://app.wandb.ai/authorize à partir d'un PC avec un compte enregistré Il existe une clé API d'environ 40 chiffres, alors copiez-la et collez-la à enter: ci-dessus. Avec cela, le serveur, etc. et le compte Web sont liés.

Réécriture de code

Tout d'abord, ajoutez le code suivant au début.

# Inside my model training code
import wandb
wandb.init(project="my-project")

Vous pouvez résumer les résultats par nom de projet.

S'il y a un argument que vous souhaitez enregistrer, vous pouvez le sauvegarder avec la méthode config.

wandb.config.dropout = 0.2
wandb.config.hidden_layer_size = 128

Ensuite, entrez le code d'enregistrement dans les données d'entraînement.

def my_train_loop():
    for epoch in range(10):
        loss = 0 # change as appropriate :)
        wandb.log({'epoch': epoch, 'loss': loss})

Normalement, placez wandb.log ({dict}) dans la partie où l'impression (perte) est effectuée. Des graphiques sont créés pour les arguments passés dans dict.

Vous pouvez enregistrer le journal d'apprentissage en mettant le code suivant à la fin.

wandb.save("mymodel.h5")

Essayez de bouger

test.py


import wandb
wandb.init(project="test-project")

lr = 0.1
wandb.config.lr = lr

def my_train_loop():
    loss = 10

    for epoch in range(10):
        loss = loss * lr  # change as appropriate :)
        wandb.log({'epoch': epoch, 'loss': loss})
    wandb.save("mymodel.h5")


def main():
    my_train_loop()

if __name__ == "__main__":
    main()

Exécutez le code ci-dessus et Lorsque vous accédez à la page W & B,

スクリーンショット 2020-01-30 15.24.14.png

Vous pouvez obtenir la transition de la perte comme ça. La raison pour laquelle il existe une époque est essentiellement que l'axe horizontal est le nombre de pas. Par conséquent, en enregistrant l'époque comme axe horizontal lors de la création d'un graphique, スクリーンショット 2020-01-30 15.27.21.png De cette façon, vous pouvez créer des graphiques tels que époque vs perte.

Le lr ajouté à la configuration est également enregistré, ce qui est utile lors de la reproduction. スクリーンショット 2020-01-30 15.30.01.png

c'est simple.

En fait, cela fait le deuxième jour que je l'ai touché, mais il n'y a pas beaucoup de code à ajouter et il est rapide de créer un graphique. De plus, en enregistrant sur le Web, vous pouvez collecter et stocker les résultats sur différents serveurs en un seul. Essayez-le!

Recommended Posts

Essayez d'utiliser W & B
Essayez d'utiliser Tkinter
Essayez d'utiliser docker-py
Essayez d'utiliser Cookiecutter
Essayez d'utiliser des géopandas
Essayez d'utiliser Selenium
Essayez d'utiliser scipy
Essayez d'utiliser pandas.DataFrame
Essayez d'utiliser django-swiftbrowser
Essayez d'utiliser matplotlib
Essayez d'utiliser tf.metrics
Essayez d'utiliser PyODE
Essayez d'utiliser virtualenv (virtualenvwrapper)
Essayez d'utiliser virtualenv maintenant
Essayez d'utiliser Django templates.html
[Kaggle] Essayez d'utiliser LGBM
Essayez d'utiliser l'analyseur de flux de Python.
Essayez d'utiliser Tkinter de Python
Essayez d'utiliser Tweepy [Python2.7]
Essayez d'utiliser collate_fn de Pytorch
Essayez d'utiliser PythonTex avec Texpad.
[Python] Essayez d'utiliser le canevas de Tkinter
Essayez d'utiliser l'image Docker de Jupyter
Essayez d'utiliser scikit-learn (1) - Clustering K par méthode moyenne
Essayez d'utiliser matplotlib avec PyCharm
Essayez d'utiliser Azure Logic Apps
Essayez d'utiliser Kubernetes Client -Python-
Essayez d'utiliser l'API Twitter
Essayez d'utiliser OpenCV sur Windows
Essayez d'utiliser Jupyter Notebook de manière dynamique
Essayez d'utiliser AWS SageMaker Studio
Essayez de tweeter automatiquement en utilisant Selenium.
Essayez d'utiliser SQLAlchemy + MySQL (partie 1)
Essayez d'utiliser l'API Twitter
Essayez d'utiliser SQLAlchemy + MySQL (partie 2)
Essayez d'utiliser la fonction de modèle de Django
Essayez d'utiliser l'API PeeringDB 2.0
Essayez d'utiliser la fonction de brouillon de Pelican
Essayez d'utiliser pytest-Overview and Samples-
Essayez d'utiliser le folium avec anaconda
Essayez d'utiliser l'API Admin de la passerelle Janus
Essayez d'utiliser Spyder inclus dans Anaconda
Essayez d'utiliser des modèles de conception (édition exportateur)
Essayez d'utiliser Pillow sur iPython (partie 1)
Essayez d'utiliser Pillow sur iPython (partie 2)
Essayez d'utiliser l'API de Pleasant (python / FastAPI)
Essayez d'utiliser LevelDB avec Python (plyvel)
Essayez d'utiliser pynag pour configurer Nagios
Essayez d'utiliser la fonction de débogage à distance de PyCharm
Essayez d'utiliser ArUco avec Raspberry Pi
Essayez d'utiliser LiDAR bon marché (Camsense X1)
[Serveur de location Sakura] Essayez d'utiliser flask.
Essayez d'utiliser Pillow sur iPython (partie 3)
Renforcer l'apprentissage 8 Essayez d'utiliser l'interface utilisateur de Chainer
Essayez d'obtenir des statistiques en utilisant e-Stat
Essayez d'utiliser l'API d'action de Python argparse
Essayez d'utiliser le module Python Cmd
Essayez d'utiliser le networkx de Python avec AtCoder
Essayez d'utiliser LeapMotion avec Python
Essayez d'utiliser la reconnaissance de caractères manuscrits (OCR) de GCP
Essayez d'utiliser Amazon DynamoDB à partir de Python