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
Nom | Description |
---|---|
name
Obligatoire
|
[Obligatoire] Nom de l’étape. |
hyperdrive_config
Obligatoire
|
[Obligatoire] HyperDriveConfig qui définit la configuration de l’exécution HyperDrive. |
estimator_entry_script_arguments
|
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. Valeur par défaut: None
|
inputs
|
list[Union[InputPortBinding, PipelineOutputAbstractDataset, DataReference, PortDataReference, PipelineData, DatasetConsumptionConfig]]
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 de stockage des métriques d’exécution HyperDrive sous la forme d’un fichier JSON. Valeur par défaut: None
|
allow_reuse
|
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. Valeur par défaut: True
|
version
|
Balise de version facultative pour indiquer une modification de fonctionnalité pour le module. Valeur par défaut: None
|
name
Obligatoire
|
[Obligatoire] Nom de l’étape. |
hyperdrive_config
Obligatoire
|
[Obligatoire] HyperDriveConfig qui définit la configuration de l’exécution HyperDrive. |
estimator_entry_script_arguments
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. |
inputs
Obligatoire
|
list[Union[InputPortBinding, PipelineOutputAbstractDataset, DataReference, PortDataReference, PipelineData, DatasetConsumptionConfig]]
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 où stocker les métriques d’exécution HyperDrive sous forme de fichier JSON. |
allow_reuse
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
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
Nom | Description |
---|---|
graph
Obligatoire
|
Objet graphe auquel ajouter le nœud. |
default_datastore
Obligatoire
|
Magasin de données par défaut. |
context
Obligatoire
|
<xref:azureml.pipeline.core._GraphContext>
Contexte du graphique. |
Retours
Type | Description |
---|---|
Nœud créé. |