Obtenir l'historique des métriques de MLflow en Python

tl;dr

import pandas as pd
import mlflow

def get_metric_history(run_id, metric):
    client = mlflow.tracking.MlflowClient()
    history = client.get_metric_history(run_id, metric)
    history = [dict(key=m.key, value=m.value, timestamp=m.timestamp, step=m.step) for m in history]
    history = pd.DataFrame(history).sort_values("step")
    history.timestamp = pd.to_datetime(history.timestamp, unit="ms")
    return history

train_loss = get_metric_history(run_id, "train_loss")
valid_loss = get_metric_history(run_id, "valid_loss")
history = pd.concat((train_loss, valid_loss))
history.pivot(index="step", columns="key", values="value").plot()

How to Si vous souhaitez interagir avec le serveur via MLFlow, utilisez mlflow.tracking.MlflowClient.

Vous pouvez utiliser MlflowClient.get_metric_history (run_id, key) pour obtenir tout l'historique des métriques d'une clé lors d'une exécution. Voici une fonction qui l'utilise pour obtenir l'historique de la métrique sous la forme pandas.DataFrame. Il est facile de gérer l'horodatage lorsqu'il est converti en datetime.

def get_metric_history(run_id, metric):
    client = mlflow.tracking.MlflowClient()
    history = client.get_metric_history(run_id, metric)
    history = [dict(key=m.key, value=m.value, timestamp=m.timestamp, step=m.step) for m in history]
    history = pd.DataFrame(history).sort_values("step")
    history.timestamp = pd.to_datetime(history.timestamp, unit="ms")
    return history

train_loss = get_metric_history(run_id, "train_loss")

En remarque, si vous souhaitez comparer plusieurs métriques et tracés, vous pouvez facilement le faire en combinant les Dataframes verticalement comme indiqué ci-dessous et en utilisant le pivot.

train_loss = get_metric_history(run_id, "train_loss")
valid_loss = get_metric_history(run_id, "valid_loss")
history = pd.concat((train_loss, valid_loss))
history.pivot(index="step", columns="key", values="value").plot()

Recommended Posts

Obtenir l'historique des métriques de MLflow en Python
Obtenir des données de Quandl en Python
Obtenez des taux de change à partir des taux de change ouverts en Python
Obtenez la probabilité de précipitation de XML avec Python
Obtenir la date en Python
Obtenez des données de séries chronologiques de k-db.com avec Python
[Python] Obtenez un an d'historique des messages de Slack
Obtenez uniquement des articles de pages Web en Python
Obtenez des commentaires YouTube en Python
Obtenez le mois dernier en Python
OCR à partir de PDF en Python
Obtenez des données du module GPS à 10 Hz avec Python
Obtenir la taille du terminal en Python
Obtenir explicitement EOF en python
Obtenez des notes Evernote en Python
Obtenez des synonymes japonais avec Python
Obtenez votre fréquence cardiaque à partir de l'API fitbit en Python!
Obtenez la valeur tout en spécifiant la valeur par défaut de dict en Python
Appuyez sur REST en Python pour obtenir des données de New Relic
Obtenir des constantes de macro à partir du fichier d'en-tête C (++) (.h) en Python
Obtenir le message du premier offset avec le consommateur kafka en python
Extraire du texte d'images avec Python
Obtenir, publier un mémo de communication en Python
python Obtenez la météo à venir de l'API météo
Obtenez le chemin du bureau en Python
Obtenez le nom d'hôte en Python
Démarrez avec Python avec Blender
Extraire des chaînes de fichiers avec Python
Comment obtenir une chaîne à partir d'un argument de ligne de commande en python
Obtenez des données supplémentaires vers LDAP avec python
Obtenir le code HTML de l'élément avec du sélénium Python
[Note] Obtenir des données de PostgreSQL avec Python
Obtenir l'équilibre Suica en Python (en utilisant libpafe)
Récupérer les frappes de / dev / input (python evdev)
Relancé de "pas d'accès Internet" en Python
Empêcher le double lancement de cron en Python
Comment obtenir stacktrace en python
Obtenez des données Youtube en Python à l'aide de l'API Youtube Data
Télécharger des images à partir de la liste d'URL en Python
Obtenez un jeton pour conoha avec python
Commençons avec TopCoder en Python (version 2020)
Générer une classe à partir d'une chaîne en Python
Générer un langage C à partir d'une expression S avec Python
Obtenir la liste de codes EDINET en Python
Convertir de Markdown en HTML en Python
Obtenez Cloud Logging disponible en Python en 10 minutes
[Python] Obtenez la couleur principale de la capture d'écran
Obtenez votre propre adresse IP en Python
Comment obtenir la valeur du magasin de paramètres dans lambda (en utilisant python)
Obtenez des options en Python à partir des fichiers JSON et des arguments de ligne de commande
Python en optimisation
CURL en Python
Récupérer le contenu de git diff depuis python
Métaprogrammation avec Python
Python 3.3 avec Anaconda
Géocodage en python
[Python] Récupérez les fichiers dans le dossier avec Python
Obtenez la météo à Osaka via l'API Web (python)
Méta-analyse en Python
Unittest en Python
Recevoir des compliments de nouvelles filles en C # paizahack_01