Run Classe
Définit la classe de base pour toutes les exécutions d’expériences Azure Machine Learning.
Une exécution représente une seule version d’évaluation d’une expérience. Les exécutions sont utilisées pour surveiller l’exécution asynchrone d’une version d’évaluation, des métriques de journal et stocker la sortie de la version d’évaluation, et pour analyser les résultats et accéder aux artefacts générés par la version d’évaluation.
Les objets d’exécution sont créés lorsque vous envoyez un script pour entraîner un modèle dans de nombreux scénarios différents dans Azure Machine Learning, notamment les exécutions HyperDrive, les exécutions de pipeline et les exécutions AutoML. Un objet Run est également créé lorsque vous submit ou start_logging avec la Experiment classe.
Pour commencer à utiliser des expériences et des exécutions, consultez
Initialisez l’objet Run.
Constructeur
Run(experiment, run_id, outputs=None, **kwargs)
Paramètres
Nom | Description |
---|---|
experiment
Obligatoire
|
Expérience contenante. |
run_id
Obligatoire
|
ID de l’exécution. |
outputs
|
Sorties à suivre. Valeur par défaut: None
|
_run_dto
Obligatoire
|
<xref:azureml._restclient.models.run_dto.RunDto>
Utilisation interne uniquement. |
kwargs
Obligatoire
|
Dictionnaire de paramètres de configuration supplémentaires. |
experiment
Obligatoire
|
Expérience contenante. |
run_id
Obligatoire
|
ID de l’exécution. |
outputs
Obligatoire
|
Sorties à suivre. |
kwargs
Obligatoire
|
Dictionnaire de paramètres de configuration supplémentaires. |
Remarques
Une exécution représente une seule version d’évaluation d’une expérience. Un objet Run est utilisé pour surveiller l’exécution asynchrone d’une version d’évaluation, des métriques de journal et stocker la sortie de la version d’évaluation, et pour analyser les résultats et accéder aux artefacts générés par la version d’évaluation.
L’exécution est utilisée à l’intérieur de votre code d’expérimentation pour consigner les métriques et les artefacts dans le service d’historique des exécutions.
L’exécution est utilisée en dehors de vos expériences pour surveiller la progression et interroger et analyser les métriques et les résultats générés.
La fonctionnalité d’exécution inclut :
Stockage et récupération des métriques et des données
Chargement et téléchargement de fichiers
Utilisation de balises ainsi que de la hiérarchie enfant pour faciliter la recherche des exécutions passées
Inscription de fichiers de modèle stockés en tant que modèle pouvant être opérationnel
Stockage, modification et récupération des propriétés d’une exécution
Chargement de l’exécution actuelle à partir d’un environnement distant avec la get_context méthode
Capture instantanée efficace d’un fichier ou d’un répertoire pour la reproductibilité
Cette classe fonctionne avec les Experiment scénarios suivants :
Création d’une exécution en exécutant du code à l’aide de submit
Création d’une exécution interactive dans un notebook à l’aide de start_logging
Journalisation des métriques et chargement d’artefacts dans votre expérience, par exemple lors de l’utilisation log
Lecture des métriques et téléchargement d’artefacts lors de l’analyse des résultats expérimentaux, par exemple lors de l’utilisation get_metrics
Pour soumettre une exécution, créez un objet de configuration qui décrit la façon dont l’expérience est exécutée. Voici des exemples des différents objets de configuration que vous pouvez utiliser :
azureml.train.automl.automlconfig.AutoMLConfig
azureml.train.hyperdrive.HyperDriveConfig
azureml.pipeline.core.Pipeline
azureml.pipeline.core.PublishedPipeline
azureml.pipeline.core.PipelineEndpoint
Les métriques suivantes peuvent être ajoutées à une exécution lors de l’entraînement d’une expérience.
Scalaire
Journaliser une valeur numérique ou de chaîne à l’exécution avec le nom donné à l’aide logde . La journalisation d’une métrique à une exécution entraîne le stockage de cette métrique dans l’enregistrement d’exécution de l’expérience. Vous pouvez enregistrer la même métrique plusieurs fois au sein d’une exécution, le résultat étant considéré comme un vecteur de cette métrique.
Exemple :
run.log("accuracy", 0.95)
Liste
Journaliser une liste de valeurs à exécuter avec le nom donné à l’aide log_listde .
Exemple :
run.log_list("accuracies", [0.6, 0.7, 0.87])
Ligne
L’utilisation log_row crée une métrique avec plusieurs colonnes, comme décrit dans
kwargs
. Chaque paramètre nommé génère une colonne avec la valeur spécifiée.log_row
peut être appelé une seule fois pour journaliser un tuple arbitraire ou plusieurs fois dans une boucle pour générer une table complète.Exemple :
run.log_row("Y over X", x=1, y=0.4)
Tableau
Journalisez un objet dictionnaire à l’exécution avec le nom donné à l’aide log_tablede .
Exemple :
run.log_table("Y over X", {"x":[1, 2, 3], "y":[0.6, 0.7, 0.89]})
Image
Journaliser une image dans l’enregistrement d’exécution. Permet log_image de consigner un fichier image ou un tracé matplotlib à l’exécution. Ces images seront visibles et comparables dans l’enregistrement d’exécution.
Exemple :
run.log_image("ROC", path)
Méthodes
add_properties |
Ajoutez des propriétés immuables à l’exécution. Les balises et les propriétés (dict[str, str]) diffèrent dans leur mutabilité. Les propriétés sont immuables et créent enregistrement permanent à des fins d’audit. Les balises sont mutables. Pour plus d’informations sur l’utilisation des balises et des propriétés, consultez Balises et exécutions de recherche. |
add_type_provider |
Hook d’extensibilité pour les types d’exécution personnalisés stockés dans l’historique des exécutions. |
cancel |
Marquez l’exécution comme annulée. S’il existe un travail associé à un champ cancel_uri défini, arrêtez également ce travail. |
child_run |
Créez une exécution enfant. |
clean |
Supprimez les fichiers correspondant à l’exécution actuelle sur la cible spécifiée dans la configuration d’exécution. |
complete |
Attendez que la file d’attente des tâches soit traitée. Ensuite, l’exécution est marquée comme terminée. Cela est généralement utilisé dans les scénarios de notebook interactifs. |
create_children |
Créez une ou plusieurs exécutions enfants. |
download_file |
Téléchargez un fichier associé à partir du stockage. |
download_files |
Téléchargez des fichiers à partir d’un préfixe de stockage donné (nom du dossier) ou de l’intégralité du conteneur si le préfixe n’est pas spécifié. |
fail |
Marquez l’exécution comme ayant échoué. Définissez éventuellement la propriété Error de l’exécution avec un message ou une exception passé à |
flush |
Attendez que la file d’attente des tâches soit traitée. |
get |
Obtenez l’exécution de cet espace de travail avec son ID d’exécution. |
get_all_logs |
Téléchargez tous les journaux d’activité de l’exécution dans un répertoire. |
get_children |
Obtenez tous les enfants de l’exécution actuelle sélectionnée par les filtres spécifiés. |
get_context |
Retournez le contexte de service actuel. Utilisez cette méthode pour récupérer le contexte de service actuel pour la journalisation des métriques et le chargement de fichiers. Si |
get_detailed_status |
Récupérez l’état le plus récent de l’exécution. Si l’état de l’exécution est « Mis en file d’attente », il affiche les détails. |
get_details |
Obtenez la définition, les informations d’état, les fichiers journaux actuels et d’autres détails de l’exécution. |
get_details_with_logs |
Retourne l’état de l’exécution, y compris le contenu du fichier journal. |
get_environment |
Obtenez la définition d’environnement utilisée par cette exécution. |
get_file_names |
Répertorie les fichiers stockés en association avec l’exécution. |
get_metrics |
Récupérez les métriques journalisées à l’exécution. Si |
get_properties |
Récupérez les dernières propriétés de l’exécution à partir du service. |
get_secret |
Obtenez la valeur secrète à partir du contexte d’une exécution. Obtenez la valeur secrète du nom fourni. Le nom du secret fait référence à une valeur stockée dans Azure Key Vault associée à votre espace de travail. Pour obtenir un exemple d’utilisation des secrets, consultez Utiliser des secrets dans les exécutions d’entraînement. |
get_secrets |
Obtenez les valeurs de secret pour une liste donnée de noms de secrets. Obtenez un dictionnaire de secrets trouvés et introuvables pour la liste des noms fournis. Chaque nom de secret fait référence à une valeur stockée dans Azure Key Vault associée à votre espace de travail. Pour obtenir un exemple d’utilisation des secrets, consultez Utiliser des secrets dans les exécutions d’entraînement. |
get_snapshot_id |
Obtenez l’ID d’instantané le plus récent. |
get_status |
Récupérez l’état le plus récent de l’exécution. Les valeurs courantes retournées incluent « Running », « Completed » et « Failed ». |
get_submitted_run |
OBSOLESCENT. Utilisez get_context. Obtenez l’exécution envoyée pour cette expérience. |
get_tags |
Récupérez le dernier ensemble de balises mutables sur l’exécution à partir du service. |
list |
Obtenez la liste des exécutions dans une expérience spécifiée par des filtres facultatifs. |
list_by_compute |
Obtenez la liste des exécutions dans un calcul spécifié par des filtres facultatifs. |
log |
Consignez une valeur de métrique à l’exécution avec le nom donné. |
log_accuracy_table |
Consignez une table de précision dans le magasin d’artefacts. La métrique de table de précision est une métrique multi-utilisation non scalaire qui peut être utilisée pour produire plusieurs types de graphiques en courbes qui varient en continu sur l’espace des probabilités prédites. Par exemple, ces graphiques sont roc, rappel de précision et courbes d’élévation. Le calcul de la table de précision est similaire au calcul d’une courbe ROC. Une courbe ROC stocke des taux positifs vrais et des taux faux positifs à de nombreux seuils de probabilité différents. La table de précision stocke le nombre brut de vrais positifs, de faux positifs, de vrais négatifs et de faux négatifs à de nombreux seuils de probabilité. Il existe deux méthodes utilisées pour sélectionner des seuils : « probabilité » et « centile ». Ils diffèrent de la façon dont ils échantillonner à partir de l’espace des probabilités prédites. Les seuils de probabilité sont uniformément espadés entre 0 et 1. Si NUM_POINTS est de 5, les seuils de probabilité sont [0,0, 0,25, 0,5, 0,75, 1,0]. Les seuils de centile sont espadés en fonction de la distribution des probabilités prédites. Chaque seuil correspond au centile des données à un seuil de probabilité. Par exemple, si NUM_POINTS est de 5, le premier seuil serait au 0e centile, le deuxième au 25e centile, le troisième au 50e, et ainsi de suite. Les tables de probabilité et les tables de centile sont des listes 3D où la première dimension représente l’étiquette de classe, la deuxième dimension représente l’échantillon à un seuil (mise à l’échelle avec NUM_POINTS), et la troisième dimension a toujours 4 valeurs : TP, FP, TN, FN, et toujours dans cet ordre. Les valeurs de confusion (TP, FP, TN, FN) sont calculées avec la stratégie de repos par rapport à la stratégie de repos. Pour plus d’informations, consultez le lien suivant : https://en.wikipedia.org/wiki/Multiclass_classification N = # d’exemples dans le jeu de données de validation (200 dans l’exemple) M = # seuils = # échantillons extraits de l’espace de probabilité (5 dans l’exemple) C = # classes dans le jeu de données complet (3 dans l’exemple) Quelques invariants de la table de précision :
Remarque : M peut être n’importe quelle valeur et contrôler la résolution des graphiques Ceci est indépendant du jeu de données, est défini lors du calcul des métriques et supprime l’espace de stockage, le temps de calcul et la résolution. Les étiquettes de classe doivent être des chaînes, les valeurs de confusion doivent être des entiers et les seuils doivent être flottants. |
log_confusion_matrix |
Consignez une matrice de confusion dans le magasin d’artefacts. Cela consigne un wrapper autour de la matrice de confusion deklearn. Les données de métrique contiennent les étiquettes de classe et une liste 2D pour la matrice elle-même. Pour plus d’informations sur la façon dont la métrique est calculée, consultez le lien suivant : https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html |
log_image |
Consignez une métrique d’image dans l’enregistrement d’exécution. |
log_list |
Consignez la liste des valeurs de métriques à exécuter avec le nom donné. |
log_predictions |
Journaliser les prédictions dans le magasin d’artefacts. Cela journalise un score de métrique qui peut être utilisé pour comparer les distributions de valeurs cibles vraies à la distribution de valeurs prédites pour une tâche de régression. Les prédictions sont binaires et les écarts types sont calculés pour les barres d’erreur sur un graphique en courbes. |
log_residuals |
Journaliser les résidus dans le magasin d’artefacts. Cela consigne les données nécessaires pour afficher un histogramme de résidus pour une tâche de régression. Les résidus sont prédits - réels. Il doit y avoir un bord supérieur au nombre de comptages. Consultez la documentation de l’histogramme numpy pour obtenir des exemples d’utilisation des nombres et des arêtes pour représenter un histogramme. https://docs.scipy.org/doc/numpy/reference/generated/numpy.histogram.html |
log_row |
Journaliser une métrique de ligne à l’exécution avec le nom donné. |
log_table |
Journaliser une métrique de table à l’exécution avec le nom donné. |
register_model |
Inscrivez un modèle pour l’opérationnalisation. |
remove_tags |
Supprimez la liste des balises mutables sur cette exécution. |
restore_snapshot |
Restaurez un instantané en tant que fichier ZIP. Retourne le chemin d’accès au fichier ZIP. |
set_tags |
Ajoutez ou modifiez un ensemble de balises lors de l’exécution. Les balises non transmises dans le dictionnaire ne sont pas modifiées. Vous pouvez également ajouter des balises de chaîne simples. Lorsque ces balises apparaissent dans le dictionnaire d’étiquettes en tant que clés, elles ont la valeur None. Pour plus d’informations, consultez Baliser et rechercher des exécutions. |
start |
Marquez l’exécution comme démarré. Cela est généralement utilisé dans les scénarios avancés lorsque l’exécution a été créée par un autre acteur. |
submit_child |
Envoyez une expérience et retournez l’exécution enfant active. |
tag |
Étiquetez l’exécution avec une clé de chaîne et une valeur de chaîne facultative. |
take_snapshot |
Enregistrez un instantané du fichier ou du dossier d’entrée. |
upload_file |
Chargez un fichier dans l’enregistrement d’exécution. |
upload_files |
Chargez des fichiers dans l’enregistrement d’exécution. |
upload_folder |
Chargez le dossier spécifié dans le nom de préfixe donné. |
wait_for_completion |
Attendez la fin de cette exécution. Retourne l’objet d’état après l’attente. |
add_properties
Ajoutez des propriétés immuables à l’exécution.
Les balises et les propriétés (dict[str, str]) diffèrent dans leur mutabilité. Les propriétés sont immuables et créent enregistrement permanent à des fins d’audit. Les balises sont mutables. Pour plus d’informations sur l’utilisation des balises et des propriétés, consultez Balises et exécutions de recherche.
add_properties(properties)
Paramètres
Nom | Description |
---|---|
properties
Obligatoire
|
Propriétés masquées stockées dans l’objet d’exécution. |
add_type_provider
Hook d’extensibilité pour les types d’exécution personnalisés stockés dans l’historique des exécutions.
static add_type_provider(runtype, run_factory)
Paramètres
Nom | Description |
---|---|
runtype
Obligatoire
|
Valeur de Run.type pour laquelle la fabrique sera appelée. Les exemples incluent « hyperdrive » ou « azureml.scriptrun », mais peuvent être étendus avec des types personnalisés. |
run_factory
Obligatoire
|
<xref:function>
Fonction avec signature (Expérience, RunDto) -> Exécuter à appeler lors de la liste des exécutions. |
cancel
Marquez l’exécution comme annulée.
S’il existe un travail associé à un champ cancel_uri défini, arrêtez également ce travail.
cancel()
child_run
Créez une exécution enfant.
child_run(name=None, run_id=None, outputs=None)
Paramètres
Nom | Description |
---|---|
name
|
Nom facultatif de l’exécution enfant, généralement spécifié pour un « composant ». Valeur par défaut: None
|
run_id
|
ID d’exécution facultatif pour l’enfant, sinon il est généré automatiquement. En règle générale, ce paramètre n’est pas défini. Valeur par défaut: None
|
outputs
|
Répertoire de sorties facultatif à suivre pour l’enfant. Valeur par défaut: None
|
Retours
Type | Description |
---|---|
Exécution enfant. |
Remarques
Il est utilisé pour isoler une partie d’une exécution dans une sous-section. Cette opération peut être effectuée pour les « parties » identifiables d’une exécution qui sont intéressantes à séparer, ou pour capturer des métriques indépendantes sur une interation d’un sous-processus.
Si un répertoire de sortie est défini pour l’exécution enfant, le contenu de ce répertoire est chargé dans l’enregistrement d’exécution enfant lorsque l’enfant est terminé.
clean
Supprimez les fichiers correspondant à l’exécution actuelle sur la cible spécifiée dans la configuration d’exécution.
clean()
Retours
Type | Description |
---|---|
Liste des fichiers supprimés. |
complete
Attendez que la file d’attente des tâches soit traitée.
Ensuite, l’exécution est marquée comme terminée. Cela est généralement utilisé dans les scénarios de notebook interactifs.
complete(_set_status=True)
Paramètres
Nom | Description |
---|---|
_set_status
|
Indique s’il faut envoyer l’événement d’état pour le suivi. Valeur par défaut: True
|
create_children
Créez une ou plusieurs exécutions enfants.
create_children(count=None, tag_key=None, tag_values=None)
Paramètres
Nom | Description |
---|---|
count
|
Nombre facultatif d’enfants à créer. Valeur par défaut: None
|
tag_key
|
Clé facultative pour remplir l’entrée Balises dans tous les enfants créés. Valeur par défaut: None
|
tag_Values
Obligatoire
|
Liste facultative de valeurs qui sont mappées aux balises[tag_key] pour la liste des exécutions créées. |
tag_values
|
Valeur par défaut: None
|
Retours
Type | Description |
---|---|
Liste des exécutions enfants. |
Remarques
count
Les paramètres tag_key
OR OU ET tag_values
doivent être spécifiés.
download_file
download_files
Téléchargez des fichiers à partir d’un préfixe de stockage donné (nom du dossier) ou de l’intégralité du conteneur si le préfixe n’est pas spécifié.
download_files(prefix=None, output_directory=None, output_paths=None, batch_size=100, append_prefix=True, timeout_seconds=None)
Paramètres
Nom | Description |
---|---|
prefix
Obligatoire
|
Préfixe filepath dans le conteneur à partir duquel télécharger tous les artefacts. |
output_directory
Obligatoire
|
Répertoire facultatif que tous les chemins d’accès d’artefact utilisent comme préfixe. |
output_paths
Obligatoire
|
[str]
Chemins de fichiers facultatifs dans lesquels stocker les artefacts téléchargés. Doit être unique et correspondre à la longueur des chemins. |
batch_size
Obligatoire
|
Nombre de fichiers à télécharger par lot. La valeur par défaut est 100 fichiers. |
append_prefix
Obligatoire
|
Indicateur facultatif indiquant s’il faut ajouter le préfixe spécifié à partir du chemin d’accès final du fichier de sortie. Si la valeur est False, le préfixe est supprimé du chemin du fichier de sortie. |
timeout_seconds
Obligatoire
|
Délai d’expiration du téléchargement des fichiers. |
fail
Marquez l’exécution comme ayant échoué.
Définissez éventuellement la propriété Error de l’exécution avec un message ou une exception passé à error_details
.
fail(error_details=None, error_code=None, _set_status=True)
Paramètres
Nom | Description |
---|---|
error_details
|
str ou
BaseException
Détails facultatifs de l’erreur. Valeur par défaut: None
|
error_code
|
Code d’erreur facultatif de l’erreur pour la classification des erreurs. Valeur par défaut: None
|
_set_status
|
Indique s’il faut envoyer l’événement d’état pour le suivi. Valeur par défaut: True
|
flush
Attendez que la file d’attente des tâches soit traitée.
flush(timeout_seconds=300)
Paramètres
Nom | Description |
---|---|
timeout_seconds
|
Durée d’attente (en secondes) pendant laquelle la file d’attente des tâches doit être traitée. Valeur par défaut: 300
|
get
get_all_logs
Téléchargez tous les journaux d’activité de l’exécution dans un répertoire.
get_all_logs(destination=None)
Paramètres
Nom | Description |
---|---|
destination
|
Chemin d’accès de destination pour stocker les journaux. S’il n’est pas spécifié, un répertoire nommé en tant qu’ID d’exécution est créé dans le répertoire du projet. Valeur par défaut: None
|
Retours
Type | Description |
---|---|
Liste des noms des journaux téléchargés. |
get_children
Obtenez tous les enfants de l’exécution actuelle sélectionnée par les filtres spécifiés.
get_children(recursive=False, tags=None, properties=None, type=None, status=None, _rehydrate_runs=True)
Paramètres
Nom | Description |
---|---|
recursive
|
Indique s’il faut récurser tous les descendants. Valeur par défaut: False
|
tags
|
Si elle est spécifiée, retourne des exécutions correspondantes spécifiées « tag » ou {« tag » : « value »}. Valeur par défaut: None
|
properties
|
Si elle est spécifiée, retourne des exécutions correspondant à la « propriété » ou {"property » : « value"}. Valeur par défaut: None
|
type
|
Si elle est spécifiée, retourne des exécutions correspondant à ce type. Valeur par défaut: None
|
status
|
Si elle est spécifiée, retourne des exécutions avec l’état spécifié « status ». Valeur par défaut: None
|
_rehydrate_runs
|
Indique s’il faut instancier une exécution du type d’origine ou de la base Run. Valeur par défaut: True
|
Retours
Type | Description |
---|---|
Liste d’objets Run . |
get_context
Retournez le contexte de service actuel.
Utilisez cette méthode pour récupérer le contexte de service actuel pour la journalisation des métriques et le chargement de fichiers. Si allow_offline
la valeur est True (valeur par défaut), les actions sur l’objet Run sont imprimées de sorte qu’elles soient standard.
get_context(allow_offline=True, used_for_context_manager=False, **kwargs)
Paramètres
Nom | Description |
---|---|
cls
Obligatoire
|
Indique la méthode de classe. |
allow_offline
|
Autorisez le contexte de service à revenir en mode hors connexion afin que le script d’entraînement puisse être testé localement sans soumettre de travail avec le Kit de développement logiciel (SDK). True par défaut. Valeur par défaut: True
|
kwargs
Obligatoire
|
Dictionnaire de paramètres supplémentaires. |
used_for_context_manager
|
Valeur par défaut: False
|
Retours
Type | Description |
---|---|
Exécution envoyée. |
Remarques
Cette fonction est couramment utilisée pour récupérer l’objet Run authentifié à l’intérieur d’un script à soumettre pour l’exécution via experiment.submit(). Cet objet d’exécution est à la fois un contexte authentifié pour communiquer avec les services Azure Machine Learning et un conteneur conceptuel dans lequel les métriques, les fichiers (artefacts) et les modèles sont contenus.
run = Run.get_context() # allow_offline=True by default, so can be run locally as well
...
run.log("Accuracy", 0.98)
run.log_row("Performance", epoch=e, error=err)
get_detailed_status
Récupérez l’état le plus récent de l’exécution. Si l’état de l’exécution est « Mis en file d’attente », il affiche les détails.
get_detailed_status()
Retours
Type | Description |
---|---|
État et détails les plus récents |
Remarques
état : état actuel de l’exécution. Même valeur que celle retournée par get_status().
détails : informations détaillées sur l’état actuel.
run = experiment.submit(config)
details = run.get_detailed_status()
# details = {
# 'status': 'Queued',
# 'details': 'Run requested 1 node(s). Run is in pending status.',
# }
get_details
Obtenez la définition, les informations d’état, les fichiers journaux actuels et d’autres détails de l’exécution.
get_details()
Retours
Type | Description |
---|---|
Retourner les détails de l’exécution |
Remarques
Le dictionnaire retourné contient les paires clé-valeur suivantes :
runId : ID de cette exécution.
cible
état : état actuel de l’exécution. Même valeur que celle retournée par get_status().
startTimeUtc : heure UTC du démarrage de cette exécution, dans ISO8601.
endTimeUtc : heure UTC de la fin de cette exécution (terminée ou ayant échoué), dans ISO8601.
Cette clé n’existe pas si l’exécution est toujours en cours.
propriétés : paires clé-valeur immuables associées à l’exécution. Les propriétés par défaut incluent l’ID d’instantané de l’exécution et les informations sur le référentiel Git à partir duquel l’exécution a été créée (le cas échéant). Des propriétés supplémentaires peuvent être ajoutées à une exécution à l’aide add_propertiesde .
inputDatasets : jeux de données d’entrée associés à l’exécution.
outputDatasets : jeux de données de sortie associés à l’exécution.
logFiles
submittedBy
run = experiment.start_logging()
details = run.get_details()
# details = {
# 'runId': '5c24aa28-6e4a-4572-96a0-fb522d26fe2d',
# 'target': 'sdk',
# 'status': 'Running',
# 'startTimeUtc': '2019-01-01T13:08:01.713777Z',
# 'endTimeUtc': '2019-01-01T17:15:65.986253Z',
# 'properties': {
# 'azureml.git.repository_uri': 'https://example.com/my/git/repo',
# 'azureml.git.branch': 'master',
# 'azureml.git.commit': '7dc972657c2168927a02c3bc2b161e0f370365d7',
# 'azureml.git.dirty': 'True',
# 'mlflow.source.git.repoURL': 'https://example.com/my/git/repo',
# 'mlflow.source.git.branch': 'master',
# 'mlflow.source.git.commit': '7dc972657c2168927a02c3bc2b161e0f370365d7',
# 'ContentSnapshotId': 'b4689489-ce2f-4db5-b6d7-6ad11e77079c'
# },
# 'inputDatasets': [{
# 'dataset': {'id': 'cdebf245-701d-4a68-8055-41f9cf44f298'},
# 'consumptionDetails': {
# 'type': 'RunInput',
# 'inputName': 'training-data',
# 'mechanism': 'Mount',
# 'pathOnCompute': '/mnt/datasets/train'
# }
# }],
# 'outputDatasets': [{
# 'dataset': {'id': 'd04e8a19-1caa-4b1f-b318-4cbff9af9615'},
# 'outputType': 'RunOutput',
# 'outputDetails': {
# 'outputName': 'training-result'
# }
# }],
# 'runDefinition': {},
# 'logFiles': {},
# 'submittedBy': 'Alan Turing'
# }
get_details_with_logs
Retourne l’état de l’exécution, y compris le contenu du fichier journal.
get_details_with_logs()
Retours
Type | Description |
---|---|
Retourne l’état de l’exécution avec le contenu du fichier journal. |
get_environment
Obtenez la définition d’environnement utilisée par cette exécution.
get_environment()
Retours
Type | Description |
---|---|
Retourne l’objet d’environnement. |
get_file_names
get_metrics
Récupérez les métriques journalisées à l’exécution.
Si recursive
la valeur est True (False par défaut), récupérez les métriques pour les exécutions dans la sous-arborescence de l’exécution donnée.
get_metrics(name=None, recursive=False, run_type=None, populate=False)
Paramètres
Nom | Description |
---|---|
name
|
Nom de la métrique. Valeur par défaut: None
|
recursive
|
Indique s’il faut récurser tous les descendants. Valeur par défaut: False
|
run_type
|
Valeur par défaut: None
|
populate
|
Indique s’il faut extraire le contenu des données externes liées à la métrique. Valeur par défaut: False
|
Retours
Type | Description |
---|---|
Dictionnaire contenant les métriques des utilisateurs. |
Remarques
run = experiment.start_logging() # run id: 123
run.log("A", 1)
with run.child_run() as child: # run id: 456
child.log("A", 2)
metrics = run.get_metrics()
# metrics = { 'A': 1 }
metrics = run.get_metrics(recursive=True)
# metrics = { '123': { 'A': 1 }, '456': { 'A': 2 } } note key is runId
get_properties
Récupérez les dernières propriétés de l’exécution à partir du service.
get_properties()
Retours
Type | Description |
---|---|
Propriétés de l’exécution. |
Remarques
Les propriétés sont des informations générées par le système immuables, telles que la durée, la date d’exécution, l’utilisateur et les propriétés personnalisées ajoutées avec la add_properties méthode. Pour plus d’informations, consultez Baliser et rechercher des exécutions.
Lors de l’envoi d’un travail à Azure Machine Learning, si les fichiers sources sont stockés dans un dépôt Git local, les informations sur le dépôt sont stockées en tant que propriétés. Ces propriétés git sont ajoutées lors de la création d’une exécution ou de l’appel d’Experiment.submit. Pour plus d’informations sur les propriétés git, consultez l’intégration Git pour Azure Machine Learning.
get_secret
Obtenez la valeur secrète à partir du contexte d’une exécution.
Obtenez la valeur secrète du nom fourni. Le nom du secret fait référence à une valeur stockée dans Azure Key Vault associée à votre espace de travail. Pour obtenir un exemple d’utilisation des secrets, consultez Utiliser des secrets dans les exécutions d’entraînement.
get_secret(name)
Paramètres
Nom | Description |
---|---|
name
Obligatoire
|
Nom du secret pour lequel retourner un secret. |
Retours
Type | Description |
---|---|
Valeur secrète. |
get_secrets
Obtenez les valeurs de secret pour une liste donnée de noms de secrets.
Obtenez un dictionnaire de secrets trouvés et introuvables pour la liste des noms fournis. Chaque nom de secret fait référence à une valeur stockée dans Azure Key Vault associée à votre espace de travail. Pour obtenir un exemple d’utilisation des secrets, consultez Utiliser des secrets dans les exécutions d’entraînement.
get_secrets(secrets)
Paramètres
Nom | Description |
---|---|
secrets
Obligatoire
|
Liste des noms de secrets pour lesquels retourner des valeurs secrètes. |
Retours
Type | Description |
---|---|
Retourne un dictionnaire de secrets trouvés et introuvables. |
get_snapshot_id
Obtenez l’ID d’instantané le plus récent.
get_snapshot_id()
Retours
Type | Description |
---|---|
ID d’instantané le plus récent. |
get_status
Récupérez l’état le plus récent de l’exécution.
Les valeurs courantes retournées incluent « Running », « Completed » et « Failed ».
get_status()
Retours
Type | Description |
---|---|
État le plus récent. |
Remarques
NotStarted : il s’agit d’un objet d’exécution côté client temporaire avant l’envoi du cloud.
Démarrage : l’exécution a commencé à être traitée dans le cloud. L’appelant a un ID d’exécution à ce stade.
Approvisionnement : retourné lorsque le calcul à la demande est créé pour une soumission de travail donnée.
Préparation - L’environnement d’exécution est en cours de préparation :
build d’image docker
Configuration de l’environnement conda
Mis en file d’attente : le travail est mis en file d’attente dans la cible de calcul. Par exemple, dans BatchAI, le travail est dans l’état mis en file d’attente
en attendant que tous les nœuds demandés soient prêts.
Exécution : le travail a commencé à s’exécuter dans la cible de calcul.
Finalisation : le code utilisateur est terminé et l’exécution est en phase de post-traitement.
CancelRequested : l’annulation a été demandée pour le travail.
Terminé : l’exécution s’est terminée avec succès. Cela inclut à la fois le code utilisateur et l’exécution
phases de post-traitement.
Échec : échec de l’exécution. Généralement, la propriété Error sur une exécution fournit des détails sur la raison pour laquelle.
Annulé : suit une demande d’annulation et indique que l’exécution est désormais annulée avec succès.
NotResponding - Pour les exécutions avec pulsations activées, aucune pulsation n’a été envoyée récemment.
run = experiment.submit(config)
while run.get_status() not in ['Completed', 'Failed']: # For example purposes only, not exhaustive
print('Run {} not in terminal state'.format(run.id))
time.sleep(10)
get_submitted_run
OBSOLESCENT. Utilisez get_context.
Obtenez l’exécution envoyée pour cette expérience.
get_submitted_run(**kwargs)
Retours
Type | Description |
---|---|
Exécution envoyée. |
get_tags
Récupérez le dernier ensemble de balises mutables sur l’exécution à partir du service.
get_tags()
Retours
Type | Description |
---|---|
Balises stockées sur l’objet d’exécution. |
list
Obtenez la liste des exécutions dans une expérience spécifiée par des filtres facultatifs.
static list(experiment, type=None, tags=None, properties=None, status=None, include_children=False, _rehydrate_runs=True)
Paramètres
Nom | Description |
---|---|
experiment
Obligatoire
|
Expérience contenante. |
type
|
Si elle est spécifiée, retourne des exécutions correspondant au type spécifié. Valeur par défaut: None
|
tags
|
Si elle est spécifiée, retourne des exécutions correspondantes spécifiées « tag » ou {« tag » : « value »}. Valeur par défaut: None
|
properties
|
Si elle est spécifiée, retourne des exécutions correspondant à la « propriété » ou {"property » : « value"}. Valeur par défaut: None
|
status
|
Si elle est spécifiée, retourne des exécutions avec l’état spécifié « status ». Valeur par défaut: None
|
include_children
|
Si la valeur est true, récupérez toutes les exécutions, et non seulement les exécutions de niveau supérieur. Valeur par défaut: False
|
_rehydrate_runs
|
Si la valeur est True (par défaut), utilisez le fournisseur inscrit pour réinstancier un objet pour ce type au lieu de l’exécution de base. Valeur par défaut: True
|
Retours
Type | Description |
---|---|
Liste des exécutions. |
Remarques
L’exemple de code suivant montre certaines utilisations de la list
méthode.
favorite_completed_runs = Run.list(experiment, status='Completed', tags='favorite')
all_distinct_runs = Run.list(experiment)
and_their_children = Run.list(experiment, include_children=True)
only_script_runs = Run.list(experiment, type=ScriptRun.RUN_TYPE)
list_by_compute
Obtenez la liste des exécutions dans un calcul spécifié par des filtres facultatifs.
static list_by_compute(compute, type=None, tags=None, properties=None, status=None)
Paramètres
Nom | Description |
---|---|
compute
Obligatoire
|
Calcul conteneur. |
type
|
Si elle est spécifiée, retourne des exécutions correspondant au type spécifié. Valeur par défaut: None
|
tags
|
Si elle est spécifiée, retourne des exécutions correspondantes spécifiées « tag » ou {« tag » : « value »}. Valeur par défaut: None
|
properties
|
Si elle est spécifiée, retourne des exécutions correspondant à la « propriété » ou {"property » : « value"}. Valeur par défaut: None
|
status
|
Si elle est spécifiée, retourne des exécutions avec l’état spécifié « status ». Seules les valeurs autorisées sont « En cours d’exécution » et « En file d’attente ». Valeur par défaut: None
|
Retours
Type | Description |
---|---|
<xref:builtin.generator>
|
générateur de ~_restclient.models.RunDto |
log
Consignez une valeur de métrique à l’exécution avec le nom donné.
log(name, value, description='', step=None)
Paramètres
Nom | Description |
---|---|
name
Obligatoire
|
Nom de la métrique. |
value
Obligatoire
|
Valeur à publier sur le service. |
description
Obligatoire
|
Description facultative de la métrique. |
step
|
Axe facultatif pour spécifier l’ordre des valeurs dans une métrique. Valeur par défaut: None
|
Remarques
La journalisation d’une métrique à une exécution entraîne le stockage de cette métrique dans l’enregistrement d’exécution de l’expérience. Vous pouvez enregistrer la même métrique plusieurs fois au sein d’une exécution, le résultat étant considéré comme un vecteur de cette métrique. Si l’étape est spécifiée pour une métrique, elle doit être spécifiée pour toutes les valeurs.
log_accuracy_table
Consignez une table de précision dans le magasin d’artefacts.
La métrique de table de précision est une métrique multi-utilisation non scalaire qui peut être utilisée pour produire plusieurs types de graphiques en courbes qui varient en continu sur l’espace des probabilités prédites. Par exemple, ces graphiques sont roc, rappel de précision et courbes d’élévation.
Le calcul de la table de précision est similaire au calcul d’une courbe ROC. Une courbe ROC stocke des taux positifs vrais et des taux faux positifs à de nombreux seuils de probabilité différents. La table de précision stocke le nombre brut de vrais positifs, de faux positifs, de vrais négatifs et de faux négatifs à de nombreux seuils de probabilité.
Il existe deux méthodes utilisées pour sélectionner des seuils : « probabilité » et « centile ». Ils diffèrent de la façon dont ils échantillonner à partir de l’espace des probabilités prédites.
Les seuils de probabilité sont uniformément espadés entre 0 et 1. Si NUM_POINTS est de 5, les seuils de probabilité sont [0,0, 0,25, 0,5, 0,75, 1,0].
Les seuils de centile sont espadés en fonction de la distribution des probabilités prédites. Chaque seuil correspond au centile des données à un seuil de probabilité. Par exemple, si NUM_POINTS est de 5, le premier seuil serait au 0e centile, le deuxième au 25e centile, le troisième au 50e, et ainsi de suite.
Les tables de probabilité et les tables de centile sont des listes 3D où la première dimension représente l’étiquette de classe, la deuxième dimension représente l’échantillon à un seuil (mise à l’échelle avec NUM_POINTS), et la troisième dimension a toujours 4 valeurs : TP, FP, TN, FN, et toujours dans cet ordre.
Les valeurs de confusion (TP, FP, TN, FN) sont calculées avec la stratégie de repos par rapport à la stratégie de repos. Pour plus d’informations, consultez le lien suivant : https://en.wikipedia.org/wiki/Multiclass_classification
N = # d’exemples dans le jeu de données de validation (200 dans l’exemple) M = # seuils = # échantillons extraits de l’espace de probabilité (5 dans l’exemple) C = # classes dans le jeu de données complet (3 dans l’exemple)
Quelques invariants de la table de précision :
- TP + FP + TN + FN = N pour tous les seuils pour toutes les classes
- TP + FN est identique à tous les seuils pour n’importe quelle classe
- TN + FP est identique à tous les seuils pour n’importe quelle classe
- Les tables de probabilité et les tables de centile ont une forme [C, M, 4]
Remarque : M peut être n’importe quelle valeur et contrôler la résolution des graphiques Ceci est indépendant du jeu de données, est défini lors du calcul des métriques et supprime l’espace de stockage, le temps de calcul et la résolution.
Les étiquettes de classe doivent être des chaînes, les valeurs de confusion doivent être des entiers et les seuils doivent être flottants.
log_accuracy_table(name, value, description='')
Paramètres
Nom | Description |
---|---|
name
Obligatoire
|
Nom de la table de précision. |
value
Obligatoire
|
JSON contenant des propriétés de nom, de version et de données. |
description
Obligatoire
|
Description facultative de la métrique. |
Remarques
Exemple de valeur JSON valide :
{
"schema_type": "accuracy_table",
"schema_version": "1.0.1",
"data": {
"probability_tables": [
[
[82, 118, 0, 0],
[75, 31, 87, 7],
[66, 9, 109, 16],
[46, 2, 116, 36],
[0, 0, 118, 82]
],
[
[60, 140, 0, 0],
[56, 20, 120, 4],
[47, 4, 136, 13],
[28, 0, 140, 32],
[0, 0, 140, 60]
],
[
[58, 142, 0, 0],
[53, 29, 113, 5],
[40, 10, 132, 18],
[24, 1, 141, 34],
[0, 0, 142, 58]
]
],
"percentile_tables": [
[
[82, 118, 0, 0],
[82, 67, 51, 0],
[75, 26, 92, 7],
[48, 3, 115, 34],
[3, 0, 118, 79]
],
[
[60, 140, 0, 0],
[60, 89, 51, 0],
[60, 41, 99, 0],
[46, 5, 135, 14],
[3, 0, 140, 57]
],
[
[58, 142, 0, 0],
[56, 93, 49, 2],
[54, 47, 95, 4],
[41, 10, 132, 17],
[3, 0, 142, 55]
]
],
"probability_thresholds": [0.0, 0.25, 0.5, 0.75, 1.0],
"percentile_thresholds": [0.0, 0.01, 0.24, 0.98, 1.0],
"class_labels": ["0", "1", "2"]
}
}
log_confusion_matrix
Consignez une matrice de confusion dans le magasin d’artefacts.
Cela consigne un wrapper autour de la matrice de confusion deklearn. Les données de métrique contiennent les étiquettes de classe et une liste 2D pour la matrice elle-même. Pour plus d’informations sur la façon dont la métrique est calculée, consultez le lien suivant : https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html
log_confusion_matrix(name, value, description='')
Paramètres
Nom | Description |
---|---|
name
Obligatoire
|
Nom de la matrice de confusion. |
value
Obligatoire
|
JSON contenant des propriétés de nom, de version et de données. |
description
Obligatoire
|
Description facultative de la métrique. |
Remarques
Exemple de valeur JSON valide :
{
"schema_type": "confusion_matrix",
"schema_version": "1.0.0",
"data": {
"class_labels": ["0", "1", "2", "3"],
"matrix": [
[3, 0, 1, 0],
[0, 1, 0, 1],
[0, 0, 1, 0],
[0, 0, 0, 1]
]
}
}
log_image
Consignez une métrique d’image dans l’enregistrement d’exécution.
log_image(name, path=None, plot=None, description='')
Paramètres
Nom | Description |
---|---|
name
Obligatoire
|
Nom de la métrique. |
path
Obligatoire
|
Chemin d’accès ou flux de l’image. |
plot
Obligatoire
|
<xref:matplotlib.pyplot>
Tracé à journaliser en tant qu’image. |
description
Obligatoire
|
Description facultative de la métrique. |
Remarques
Utilisez cette méthode pour consigner un fichier image ou un tracé matplotlib à l’exécution. Ces images seront visibles et comparables dans l’enregistrement d’exécution.
log_list
log_predictions
Journaliser les prédictions dans le magasin d’artefacts.
Cela journalise un score de métrique qui peut être utilisé pour comparer les distributions de valeurs cibles vraies à la distribution de valeurs prédites pour une tâche de régression.
Les prédictions sont binaires et les écarts types sont calculés pour les barres d’erreur sur un graphique en courbes.
log_predictions(name, value, description='')
Paramètres
Nom | Description |
---|---|
name
Obligatoire
|
Nom des prédictions. |
value
Obligatoire
|
JSON contenant des propriétés de nom, de version et de données. |
description
Obligatoire
|
Description facultative de la métrique. |
Remarques
Exemple de valeur JSON valide :
{
"schema_type": "predictions",
"schema_version": "1.0.0",
"data": {
"bin_averages": [0.25, 0.75],
"bin_errors": [0.013, 0.042],
"bin_counts": [56, 34],
"bin_edges": [0.0, 0.5, 1.0]
}
}
log_residuals
Journaliser les résidus dans le magasin d’artefacts.
Cela consigne les données nécessaires pour afficher un histogramme de résidus pour une tâche de régression. Les résidus sont prédits - réels.
Il doit y avoir un bord supérieur au nombre de comptages. Consultez la documentation de l’histogramme numpy pour obtenir des exemples d’utilisation des nombres et des arêtes pour représenter un histogramme. https://docs.scipy.org/doc/numpy/reference/generated/numpy.histogram.html
log_residuals(name, value, description='')
Paramètres
Nom | Description |
---|---|
name
Obligatoire
|
Nom des résidus. |
value
Obligatoire
|
JSON contenant des propriétés de nom, de version et de données. |
description
Obligatoire
|
Description facultative de la métrique. |
Remarques
Exemple de valeur JSON valide :
{
"schema_type": "residuals",
"schema_version": "1.0.0",
"data": {
"bin_edges": [50, 100, 200, 300, 350],
"bin_counts": [0.88, 20, 30, 50.99]
}
}
log_row
Journaliser une métrique de ligne à l’exécution avec le nom donné.
log_row(name, description=None, **kwargs)
Paramètres
Nom | Description |
---|---|
name
Obligatoire
|
Nom de la métrique. |
description
|
Description facultative de la métrique. Valeur par défaut: None
|
kwargs
Obligatoire
|
Dictionnaire de paramètres supplémentaires. Dans ce cas, les colonnes de la métrique. |
Remarques
L’utilisation log_row
crée une métrique de table avec des colonnes comme décrit dans kwargs. Chaque paramètre nommé génère une colonne avec la valeur spécifiée.
log_row
peut être appelé une seule fois pour journaliser un tuple arbitraire ou plusieurs fois dans une boucle pour générer une table complète.
citrus = ['orange', 'lemon', 'lime']
sizes = [ 10, 7, 3]
for index in range(len(citrus)):
run.log_row("citrus", fruit = citrus[index], size=sizes[index])
log_table
Journaliser une métrique de table à l’exécution avec le nom donné.
log_table(name, value, description='')
Paramètres
Nom | Description |
---|---|
name
Obligatoire
|
Nom de la métrique. |
value
Obligatoire
|
Valeur de table de la métrique, dictionnaire dans lequel les clés sont des colonnes à publier dans le service. |
description
Obligatoire
|
Description facultative de la métrique. |
register_model
Inscrivez un modèle pour l’opérationnalisation.
register_model(model_name, model_path=None, tags=None, properties=None, model_framework=None, model_framework_version=None, description=None, datasets=None, sample_input_dataset=None, sample_output_dataset=None, resource_configuration=None, **kwargs)
Paramètres
Nom | Description |
---|---|
model_name
Obligatoire
|
Nom du modèle. |
model_path
|
Chemin d’accès du cloud relatif au modèle, par exemple « outputs/modelname ».
Lorsqu’il n’est pas spécifié (Aucun), Valeur par défaut: None
|
tags
|
Dictionnaire de balises de valeur de clé à affecter au modèle. Valeur par défaut: None
|
properties
|
Dictionnaire des propriétés de valeur de clé à affecter au modèle. Ces propriétés ne peuvent pas être modifiées après la création du modèle, mais de nouvelles paires clé-valeur peuvent être ajoutées. Valeur par défaut: None
|
model_framework
|
Infrastructure du modèle à inscrire. Infrastructures actuellement prises en charge : TensorFlow, ScikitLearn, Onnx, Custom, Multi Valeur par défaut: None
|
model_framework_version
|
Version d’infrastructure du modèle inscrit. Valeur par défaut: None
|
description
|
Description facultative du modèle. Valeur par défaut: None
|
datasets
|
Liste de tuples où le premier élément décrit la relation dataset-model et le deuxième élément est le jeu de données. Valeur par défaut: None
|
sample_input_dataset
|
Optionnel. Exemple de jeu de données d’entrée pour le modèle inscrit Valeur par défaut: None
|
sample_output_dataset
|
Optionnel. Exemple de jeu de données de sortie pour le modèle inscrit Valeur par défaut: None
|
resource_configuration
|
Optionnel. Configuration des ressources pour exécuter le modèle inscrit Valeur par défaut: None
|
kwargs
Obligatoire
|
Paramètres facultatifs. |
Retours
Type | Description |
---|---|
Modèle inscrit. |
Remarques
model = best_run.register_model(model_name = 'best_model', model_path = 'outputs/model.pkl')
remove_tags
Supprimez la liste des balises mutables sur cette exécution.
remove_tags(tags)
Paramètres
Nom | Description |
---|---|
tags
Obligatoire
|
Liste des balises à supprimer. |
Retours
Type | Description |
---|---|
Balises stockées sur l’objet d’exécution |
restore_snapshot
Restaurez un instantané en tant que fichier ZIP. Retourne le chemin d’accès au fichier ZIP.
restore_snapshot(snapshot_id=None, path=None)
Paramètres
Nom | Description |
---|---|
snapshot_id
|
ID d’instantané à restaurer. La dernière est utilisée si elle n’est pas spécifiée. Valeur par défaut: None
|
path
|
Chemin d’accès où le fichier ZIP téléchargé est enregistré. Valeur par défaut: None
|
Retours
Type | Description |
---|---|
Chemin d’accès. |
set_tags
Ajoutez ou modifiez un ensemble de balises lors de l’exécution. Les balises non transmises dans le dictionnaire ne sont pas modifiées.
Vous pouvez également ajouter des balises de chaîne simples. Lorsque ces balises apparaissent dans le dictionnaire d’étiquettes en tant que clés, elles ont la valeur None. Pour plus d’informations, consultez Baliser et rechercher des exécutions.
set_tags(tags)
Paramètres
Nom | Description |
---|---|
tags
Obligatoire
|
Balises stockées dans l’objet d’exécution. |
start
Marquez l’exécution comme démarré.
Cela est généralement utilisé dans les scénarios avancés lorsque l’exécution a été créée par un autre acteur.
start()
submit_child
Envoyez une expérience et retournez l’exécution enfant active.
submit_child(config, tags=None, **kwargs)
Paramètres
Nom | Description |
---|---|
config
Obligatoire
|
Configuration à envoyer. |
tags
|
Balises à ajouter à l’exécution envoyée, par exemple {"tag » : « value"}. Valeur par défaut: None
|
kwargs
Obligatoire
|
Paramètres supplémentaires utilisés dans la fonction d’envoi pour les configurations. |
Retours
Type | Description |
---|---|
Objet d’exécution. |
Remarques
L’envoi est un appel asynchrone à la plateforme Azure Machine Learning pour exécuter une version d’évaluation sur du matériel local ou distant. Selon la configuration, l’envoi prépare automatiquement vos environnements d’exécution, exécute votre code et capture votre code source et les résultats dans l’historique des exécutions de l’expérience.
Pour soumettre une expérience, vous devez d’abord créer un objet de configuration décrivant la façon dont l’expérience doit être exécutée. La configuration dépend du type d’essai requis.
Voici un exemple d’envoi d’une expérience enfant à partir de votre ordinateur ScriptRunConfig local :
from azureml.core import ScriptRunConfig
# run a trial from the train.py code in your current directory
config = ScriptRunConfig(source_directory='.', script='train.py',
run_config=RunConfiguration())
run = parent_run.submit_child(config)
# get the url to view the progress of the experiment and then wait
# until the trial is complete
print(run.get_portal_url())
run.wait_for_completion()
Pour plus d’informations sur la configuration d’une exécution, consultez submit.
tag
Étiquetez l’exécution avec une clé de chaîne et une valeur de chaîne facultative.
tag(key, value=None)
Paramètres
Nom | Description |
---|---|
key
Obligatoire
|
Clé d’étiquette |
value
|
Valeur facultative de la balise Valeur par défaut: None
|
Remarques
Les balises et les propriétés d’une exécution sont les deux dictionnaires de chaîne -> chaîne. La différence entre elles est la mutabilité : les balises peuvent être définies, mises à jour et supprimées, tandis que les propriétés peuvent uniquement être ajoutées. Cela rend les propriétés plus appropriées pour les déclencheurs de comportement liés au système/flux de travail, tandis que les balises sont généralement accessibles à l’utilisateur et significatives pour les consommateurs de l’expérience.
run = experiment.start_logging()
run.tag('DeploymentCandidate')
run.tag('modifiedBy', 'Master CI')
run.tag('modifiedBy', 'release pipeline') # Careful, tags are mutable
run.add_properties({'BuildId': os.environ.get('VSTS_BUILD_ID')}) # Properties are not
tags = run.get_tags()
# tags = { 'DeploymentCandidate': None, 'modifiedBy': 'release pipeline' }
take_snapshot
Enregistrez un instantané du fichier ou du dossier d’entrée.
take_snapshot(file_or_folder_path)
Paramètres
Nom | Description |
---|---|
file_or_folder_path
Obligatoire
|
Fichier ou dossier contenant le code source d’exécution. |
Retours
Type | Description |
---|---|
Retourne l’ID d’instantané. |
Remarques
Les instantanés sont destinés à être le code source utilisé pour exécuter l’exécution de l’expérience. Elles sont stockées avec l’exécution afin que la version d’évaluation de l’exécution puisse être répliquée à l’avenir.
Remarque
Les captures instantanées sont automatiquement prises lorsqu’elles submit sont appelées. En règle générale, cette méthode take_snapshot est requise uniquement pour les exécutions interactives (notebook).
upload_file
Chargez un fichier dans l’enregistrement d’exécution.
upload_file(name, path_or_stream, datastore_name=None)
Paramètres
Nom | Description |
---|---|
name
Obligatoire
|
Nom du fichier à charger. |
path_or_stream
Obligatoire
|
Chemin d’accès local relatif ou flux vers le fichier à charger. |
datastore_name
Obligatoire
|
Nom facultatif du magasin de données |
Retours
Type | Description |
---|---|
Remarques
run = experiment.start_logging()
run.upload_file(name='important_file', path_or_stream="path/on/disk/file.txt")
Remarque
Exécute automatiquement le fichier de capture dans le répertoire de sortie spécifié, qui est défini par défaut sur « ./outputs » pour la plupart des types d’exécution. Utilisez upload_file uniquement lorsque des fichiers supplémentaires doivent être chargés ou qu’un répertoire de sortie n’est pas spécifié.
upload_files
Chargez des fichiers dans l’enregistrement d’exécution.
upload_files(names, paths, return_artifacts=False, timeout_seconds=None, datastore_name=None)
Paramètres
Nom | Description |
---|---|
names
Obligatoire
|
Noms des fichiers à charger. Si la valeur est définie, les chemins d’accès doivent également être définis. |
paths
Obligatoire
|
Chemins d’accès locaux relatifs aux fichiers à charger. S’il est défini, les noms sont requis. |
return_artifacts
Obligatoire
|
Indique qu’un objet d’artefact doit être retourné pour chaque fichier chargé. |
timeout_seconds
Obligatoire
|
Délai d’expiration pour le chargement de fichiers. |
datastore_name
Obligatoire
|
Nom facultatif du magasin de données |
Remarques
upload_files
a le même effet que upload_file
sur les fichiers distincts, mais il existe des avantages en matière de performances et d’utilisation des ressources lors de l’utilisation upload_files
.
import os
run = experiment.start_logging()
file_name_1 = 'important_file_1'
file_name_2 = 'important_file_2'
run.upload_files(names=[file_name_1, file_name_2],
paths=['path/on/disk/file_1.txt', 'other/path/on/disk/file_2.txt'])
run.download_file(file_name_1, 'file_1.txt')
os.mkdir("path") # The path must exist
run.download_file(file_name_2, 'path/file_2.txt')
Remarque
Exécute automatiquement les fichiers de capture dans le répertoire de sortie spécifié, qui est défini par défaut sur « ./outputs » pour la plupart des types d’exécution. Utilisez upload_files uniquement lorsque des fichiers supplémentaires doivent être chargés ou qu’un répertoire de sortie n’est pas spécifié.
upload_folder
Chargez le dossier spécifié dans le nom de préfixe donné.
upload_folder(name, path, datastore_name=None)
Paramètres
Nom | Description |
---|---|
name
Obligatoire
|
Nom du dossier de fichiers à charger. |
folder
Obligatoire
|
Chemin local relatif du dossier à charger. |
datastore_name
Obligatoire
|
Nom facultatif du magasin de données |
Remarques
run = experiment.start_logging()
run.upload_folder(name='important_files', path='path/on/disk')
run.download_file('important_files/existing_file.txt', 'local_file.txt')
Remarque
Exécute automatiquement les fichiers de capture dans le répertoire de sortie spécifié, qui est défini par défaut sur « ./outputs » pour la plupart des types d’exécution. Utilisez upload_folder uniquement lorsque des fichiers supplémentaires doivent être chargés ou qu’un répertoire de sortie n’est pas spécifié.
wait_for_completion
Attendez la fin de cette exécution. Retourne l’objet d’état après l’attente.
wait_for_completion(show_output=False, wait_post_processing=False, raise_on_error=True)
Paramètres
Nom | Description |
---|---|
show_output
|
Indique s’il faut afficher la sortie d’exécution sur sys.stdout. Valeur par défaut: False
|
wait_post_processing
|
Indique s’il faut attendre la fin du post-traitement une fois l’exécution terminée. Valeur par défaut: False
|
raise_on_error
|
Indique si une erreur est déclenchée lorsque l’exécution est dans un état d’échec. Valeur par défaut: True
|
Retours
Type | Description |
---|---|
Objet d’état. |
Attributs
description
Retourne la description de l’exécution.
La description facultative de l’exécution est une chaîne spécifiée par l’utilisateur utile pour décrire une exécution.
Retours
Type | Description |
---|---|
Description de l’exécution. |
display_name
Retourne le nom complet de l’exécution.
Le nom complet facultatif de l’exécution est une chaîne spécifiée par l’utilisateur utile pour l’identification ultérieure de l’exécution.
Retours
Type | Description |
---|---|
Nom complet de l’exécution. |
experiment
Obtenir l’expérience contenant l’exécution.
Retours
Type | Description |
---|---|
Récupère l’expérience correspondant à l’exécution. |
id
Obtenir l’ID d’exécution.
L’ID de l’exécution est un identificateur unique dans l’expérience conteneur.
Retours
Type | Description |
---|---|
ID d’exécution. |
name
OBSOLESCENT. Utilisez display_name.
Le nom facultatif de l’exécution est une chaîne spécifiée par l’utilisateur utile pour l’identification ultérieure de l’exécution.
Retours
Type | Description |
---|---|
ID d’exécution. |
number
Obtenir le numéro d’exécution.
Nombre monotoniquement croissant représentant l’ordre des exécutions dans une expérience.
Retours
Type | Description |
---|---|
Numéro d’exécution. |
parent
Récupérez l’exécution parente pour cette exécution à partir du service.
Les exécutions peuvent avoir un parent facultatif, ce qui entraîne une hiérarchie d’arborescences potentielle d’exécutions. Pour journaliser les métriques sur une exécution parente, utilisez la log méthode de l’objet parent, par exemple run.parent.log()
.
Retours
Type | Description |
---|---|
Exécution parente ou Aucun si aucun n’est défini. |
properties
status
Retourne l’état de l’objet d’exécution.
tags
Retournez l’ensemble de balises mutables sur cette exécution.
Retours
Type | Description |
---|---|
Balises stockées sur l’objet d’exécution. |
type
Obtenir le type d’exécution.
Indique comment l’exécution a été créée ou configurée.
Retours
Type | Description |
---|---|
Type d’exécution. |