HyperDriveStep Classe

Crée une étape de pipeline Azure ML pour exécuter le réglage des hyperparamètres pour la formation de modèles Machine Learning.

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

Créez une étape de pipeline Azure ML pour exécuter le tunning d’hyperparamètres pour l’entraînement du modèle Machine Learning.

Héritage
HyperDriveStep

Constructeur

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

Paramètres

name
str
Obligatoire

[Obligatoire] Nom de l’étape.

hyperdrive_config
HyperDriveConfig
Obligatoire

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

estimator_entry_script_arguments
list
valeur par défaut: None

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

inputs
list[Union[InputPortBinding, PipelineOutputAbstractDataset, DataReference, PortDataReference, PipelineData, DatasetConsumptionConfig]]
valeur par défaut: None

Liste des liaisons de port d’entrée.

outputs
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputAbstractDataset, OutputPortBinding]]
valeur par défaut: None

Liste des liaisons de port de sortie

metrics_output
Union[PipelineData, DataReference, OutputPortBinding]
valeur par défaut: None

Valeur facultative spécifiant l’emplacement de stockage des métriques d’exécution HyperDrive sous la forme d’un fichier JSON.

allow_reuse
bool
valeur par défaut: True

Indique si l’étape doit réutiliser les résultats précédents lorsqu’elle est exécutée 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 le fait que la définition du jeu de données a changé ou pas, non par la modification éventuelle des données sous-jacentes.

version
str
valeur par défaut: None

Balise de version facultative pour indiquer une modification de fonctionnalité pour le module.

name
str
Obligatoire

[Obligatoire] Nom de l’étape.

hyperdrive_config
HyperDriveConfig
Obligatoire

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

estimator_entry_script_arguments
list
Obligatoire

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

outputs
list[Union[PipelineData, PipelineOutputAbstractDataset, OutputPortBinding]]
Obligatoire

Liste des liaisons de port de sortie.

metrics_output
Union[PipelineData, DataReference, OutputPortBinding]
Obligatoire

Valeur facultative spécifiant l’emplacement où stocker les métriques d’exécution HyperDrive sous forme de fichier JSON.

allow_reuse
bool
Obligatoire

Indique si l’étape doit réutiliser les résultats précédents lorsqu’elle est exécutée 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 le fait que la définition du jeu de données a changé ou pas, non par la modification éventuelle des données sous-jacentes.

version
str
Obligatoire

version

Remarques

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

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

Une bonne pratique à suivre avec HyperDriveStep consiste à utiliser un dossier distinct pour les scripts et tous les fichiers dépendants associés à l’étape, puis à spécifier ce dossier en tant que source_directory de l’objet estimateur. Par exemple, consultez le paramètre source_directory de la classe TensorFlow. Cette pratique présente deux avantages. En premier lieu, cela permet de réduire la taille de l’instantané créé pour l’étape, car seuls les éléments nécessaires à l’étape sont capturés. Deuxièmement, la sortie de l’étape d’une exécution précédente peut être réutilisée si aucune modification n’est apportée au source_directory. La présence de modifications déclenche un nouveau chargement de l’instantané.

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])

Un exemple complet est disponible sur 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ée un nœud à partir de l’étape HyperDrive et l’ajoute au 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 via cette méthode afin que l’étape puisse être ajoutée à un graphique de pipeline qui représente le flux de travail.

create_node

Crée un nœud à partir de l’étape HyperDrive et l’ajoute au 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 via cette méthode afin que l’étape puisse être ajoutée à un graphique de pipeline qui représente le flux de travail.

create_node(graph, default_datastore, context)

Paramètres

graph
Graph
Obligatoire

Objet graphe auquel ajouter le nœud.

default_datastore
Union[AbstractAzureStorageDatastore, AzureDataLakeDatastore]
Obligatoire

Magasin de données par défaut.

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

Contexte du graphique.

Retours

Nœud créé.

Type de retour