Partager via


HyperDriveStep Classe

Crée une étape de pipeline Azure ML pour exécuter le tunning hyperparamètre pour l’apprentissage du modèle Machine Learning.

Pour obtenir un exemple d’utilisation d’HyperDriveStep, consultez le notebook https://aka.ms/pl-hyperdrive.

Créez une étape de pipeline Azure ML pour exécuter le tunning hyperparamètre pour l’apprentissage du modèle Machine Learning.

Constructeur

HyperDriveStep(name, hyperdrive_config, estimator_entry_script_arguments=None, inputs=None, outputs=None, metrics_output=None, allow_reuse=True, version=None)

Paramètres

Nom Description
name
Obligatoire
str

[Obligatoire] Nom de l’étape.

hyperdrive_config
Obligatoire

[Obligatoire] HyperDriveConfig qui définit la configuration de l’exécution d’HyperDrive.

estimator_entry_script_arguments

Liste des arguments de ligne de commande pour le script d’entrée d’estimateur. Si le script d’entrée de l’estimateur n’accepte pas les arguments de ligne de commande, définissez cette valeur de paramètre sur une liste vide.

Valeur par défaut: None
inputs

Liste des liaisons de port d’entrée.

Valeur par défaut: None
outputs

Liste des liaisons de port de sortie

Valeur par défaut: None
metrics_output

Valeur facultative spécifiant l’emplacement pour stocker les métriques d’exécution HyperDrive en tant que fichier JSON.

Valeur par défaut: None
allow_reuse

Indique si l’étape doit réutiliser les résultats précédents lors de la réexécutation avec les mêmes paramètres. La réutilisation est activée par défaut. Si le contenu de l’étape (scripts/dépendances) ainsi que les entrées et les paramètres restent inchangés, la sortie de l’exécution précédente de cette étape est réutilisée. Lors de la réutilisation de l’étape, au lieu de soumettre le travail au calcul, les résultats de l’exécution précédente sont immédiatement mis à la disposition des étapes suivantes. Si vous utilisez des jeux de données Azure Machine Learning comme entrées, la réutilisation est déterminée par la modification de la définition du jeu de données, et non par la modification des données sous-jacentes.

Valeur par défaut: True
version
str

Balise de version facultative pour indiquer une modification des fonctionnalités du module.

Valeur par défaut: None
name
Obligatoire
str

[Obligatoire] Nom de l’étape.

hyperdrive_config
Obligatoire

[Obligatoire] HyperDriveConfig qui définit la configuration de l’exécution d’HyperDrive.

estimator_entry_script_arguments
Obligatoire

Liste des arguments de ligne de commande pour le script d’entrée d’estimateur. Si le script d’entrée de l’estimateur n’accepte pas les arguments de ligne de commande, définissez cette valeur de paramètre sur une liste vide.

inputs
Obligatoire

Liste des liaisons de port d’entrée.

outputs
Obligatoire

Liste des liaisons de port de sortie.

metrics_output
Obligatoire

Valeur facultative spécifiant l’emplacement pour stocker les métriques d’exécution HyperDrive en tant que fichier JSON.

allow_reuse
Obligatoire

Indique si l’étape doit réutiliser les résultats précédents lors de la réexécutation avec les mêmes paramètres. La réutilisation est activée par défaut. Si le contenu de l’étape (scripts/dépendances) ainsi que les entrées et les paramètres restent inchangés, la sortie de l’exécution précédente de cette étape est réutilisée. Lors de la réutilisation de l’étape, au lieu de soumettre le travail au calcul, les résultats de l’exécution précédente sont immédiatement mis à la disposition des étapes suivantes. Si vous utilisez des jeux de données Azure Machine Learning comme entrées, la réutilisation est déterminée par la modification de la définition du jeu de données, et non par la modification des données sous-jacentes.

version
Obligatoire
str

Version

Remarques

Notez que les arguments du script d’entrée utilisés dans l’objet estimateur (par exemple, l’objet TensorFlow ) doivent être spécifiés comme liste à l’aide du estimator_entry_script_arguments paramètre lors de l’instanciation d’un HyperDriveStep. Le paramètre script_params estimateur accepte un dictionnaire. Toutefois, estimator_entry_script_argument le paramètre attend des arguments sous forme de liste.

L’initialisation HyperDriveStep implique la spécification d’une liste d’objets DataReference avec le inputs paramètre. Dans Azure ML Pipelines, une étape de pipeline peut prendre la sortie d’une autre étape ou les objets DataReference comme entrée. Par conséquent, lors de la création d’un HyperDriveStep, les paramètres et inputs les outputs paramètres doivent être définis explicitement, ce qui remplace le inputs paramètre spécifié dans l’objet Estimateor.

La meilleure pratique pour utiliser HyperDriveStep consiste à utiliser un dossier distinct pour les scripts et tous les fichiers dépendants associés à l’étape source_directoryet à spécifier ce dossier comme objet estimateur. Par exemple, consultez le source_directory paramètre de la TensorFlow classe. Cela présente deux avantages. Tout d’abord, il permet de réduire la taille de l’instantané créé pour l’étape, car seul ce qui est nécessaire pour l’étape est instantané. Deuxièmement, la sortie de l’étape à partir d’une exécution précédente peut être réutilisée s’il n’y a aucune modification apportée à celle source_directory qui déclencherait un nouveau chargement du snaphot.

L’exemple suivant montre comment utiliser HyperDriveStep dans un pipeline Azure Machine Learning.


   metrics_output_name = 'metrics_output'
   metrics_data = PipelineData(name='metrics_data',
                               datastore=datastore,
                               pipeline_output_name=metrics_output_name,
                               training_output=TrainingOutput("Metrics"))

   model_output_name = 'model_output'
   saved_model = PipelineData(name='saved_model',
                               datastore=datastore,
                               pipeline_output_name=model_output_name,
                               training_output=TrainingOutput("Model",
                                                              model_file="outputs/model/saved_model.pb"))

   hd_step_name='hd_step01'
   hd_step = HyperDriveStep(
       name=hd_step_name,
       hyperdrive_config=hd_config,
       inputs=[data_folder],
       outputs=[metrics_data, saved_model])

L’exemple complet est disponible à partir de https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-parameter-tuning-with-hyperdrive.ipynb

Méthodes

create_node

Créez un nœud à partir de l’étape HyperDrive et ajoutez-y le graphique donné.

Cette méthode n’est pas destinée à être utilisée directement. Lorsqu’un pipeline est instancié avec cette étape, Azure ML transmet automatiquement les paramètres requis par cette méthode afin que cette étape puisse être ajoutée à un graphique de pipeline qui représente le flux de travail.

create_node

Créez un nœud à partir de l’étape HyperDrive et ajoutez-y le graphique donné.

Cette méthode n’est pas destinée à être utilisée directement. Lorsqu’un pipeline est instancié avec cette étape, Azure ML transmet automatiquement les paramètres requis par cette méthode afin que cette étape puisse être ajoutée à un graphique de pipeline qui représente le flux de travail.

create_node(graph, default_datastore, context)

Paramètres

Nom Description
graph
Obligatoire

Objet graphique auquel ajouter le nœud.

default_datastore
Obligatoire

Magasin de données par défaut.

context
Obligatoire
<xref:azureml.pipeline.core._GraphContext>

Contexte de graphe.

Retours

Type Description

Nœud créé.