Partager via


PipelineParameter Classe

Définit un paramètre dans une exécution de pipeline.

Utilisez PipelineParameters pour construire des pipelines polyvalents qui peuvent être remis ultérieurement avec des valeurs de paramètre variables.

Initialisez les paramètres de pipeline.

Constructeur

PipelineParameter(name, default_value)

Paramètres

Nom Description
name
Obligatoire
str

Nom du paramètre de pipeline.

default_value
Obligatoire

Valeur par défaut du paramètre de pipeline.

name
Obligatoire
str

Nom du paramètre de pipeline.

default_value
Obligatoire

Valeur par défaut du paramètre de pipeline.

Remarques

PipelineParameters peut être ajouté à n’importe quelle étape lors de la construction d’un pipeline. Lorsque le pipeline est envoyé, les valeurs de ces paramètres peuvent être spécifiées.

Voici un exemple d’ajout d’un PipelineParameter à une étape :


   from azureml.pipeline.steps import PythonScriptStep
   from azureml.pipeline.core import PipelineParameter

   pipeline_param = PipelineParameter(name="pipeline_arg", default_value="default_val")
   train_step = PythonScriptStep(script_name="train.py",
                                 arguments=["--param1", pipeline_param],
                                 target=compute_target,
                                 source_directory=project_folder)

Dans cet exemple, un PipelineParameter portant le nom « pipeline_arg » a été ajouté aux arguments d’un PythonScriptStep. Lorsque le script Python est exécuté, la valeur de PipelineParameter est fournie via les arguments de ligne de commande. Ce PipelineParameter peut également être ajouté à d’autres étapes du pipeline pour fournir des valeurs communes à plusieurs étapes du pipeline. Les pipelines peuvent avoir plusieurs PipelineParameters spécifiés.

Pour envoyer ce pipeline et spécifier la valeur de l’utilisation de PipelineParameter « pipeline_arg » :


   pipeline = Pipeline(workspace=ws, steps=[train_step])
   pipeline_run = Experiment(ws, 'train').submit(pipeline, pipeline_parameters={"pipeline_arg": "test_value"})

Remarque : si « pipeline_arg » n’a pas été spécifié dans le dictionnaire pipeline_parameters, la valeur par défaut de PipelineParameter fournie lors de la construction du pipeline serait utilisée (dans ce cas, la valeur par défaut fournie était « default_val »).

Les paramètres multilignes ne peuvent pas être utilisés comme PipelineParameters.

PipelineParameters peut également être utilisé avec DataPath et DataPathComputeBinding pour spécifier des entrées d’étape. Cela permet à un pipeline d’être exécuté avec des données d’entrée variables.

Voici un exemple d’utilisation de DataPath avec PipelineParameters :


   from azureml.core.datastore import Datastore
   from azureml.data.datapath import DataPath, DataPathComputeBinding
   from azureml.pipeline.steps import PythonScriptStep
   from azureml.pipeline.core import PipelineParameter

   datastore = Datastore(workspace=workspace, name="workspaceblobstore")
   datapath = DataPath(datastore=datastore, path_on_datastore='input_data')
   data_path_pipeline_param = (PipelineParameter(name="input_data", default_value=datapath),
                               DataPathComputeBinding(mode='mount'))

   train_step = PythonScriptStep(script_name="train.py",
                                 arguments=["--input", data_path_pipeline_param],
                                 inputs=[data_path_pipeline_param],
                                 compute_target=compute_target,
                                 source_directory=project_folder)

Dans ce cas, la valeur par défaut du paramètre « input_data » fait référence à un fichier sur le « workspaceblobstore » nommé « input_data ». Si le pipeline est envoyé sans spécifier de valeur pour ce PipelineParameter, la valeur par défaut est utilisée. Pour envoyer ce pipeline et spécifier la valeur de l’utilisation de PipelineParameter « input_data » :


   from azureml.pipeline.core import Pipeline
   from azureml.data.datapath import DataPath

   pipeline = Pipeline(workspace=ws, steps=[train_step])
   new_data_path = DataPath(datastore=datastore, path_on_datastore='new_input_data')
   pipeline_run = experiment.submit(pipeline,
                                    pipeline_parameters={"input_data": new_data_path})