PipelineParameter Classe

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

Utilisez les paramètres de pipeline pour créer des pipelines polyvalents qui peuvent par la suite être soumis de nouveau avec des valeurs de paramètre variables.

Initialiser les paramètres de pipeline.

Héritage
builtins.object
PipelineParameter

Constructeur

PipelineParameter(name, default_value)

Paramètres

name
str
Obligatoire

Nom du paramètre de pipeline.

default_value
Union[int, str, bool, float, DataPath, PipelineDataset, FileDataset, TabularDataset]
Obligatoire

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

name
str
Obligatoire

Nom du paramètre de pipeline.

default_value
Union[int, str, bool, float, DataPath, PipelineDataset, FileDataset, TabularDataset]
Obligatoire

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

Remarques

Des PipelineParameters peuvent être ajoutés à une étape lors de la construction d’un pipeline. Lorsque le pipeline est soumis, 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 du PipelineParameter est fournie par le biais des arguments de ligne de commande. Ce PipelineParameter peut également être ajouté à d’autres étapes dans le pipeline pour fournir des valeurs communes à plusieurs étapes dans le pipeline. Plusieurs PipelineParameters peuvent être spécifiés pour des pipelines.

Pour envoyer ce pipeline et spécifier la valeur de PipelineParameter « pipeline_arg », utilisez :


   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 du PipelineParameter fourni lors de la construction du pipeline est utilisée (dans cet exemple, la valeur par défaut fournie était « default_val »).

Les paramètres multilignes ne peuvent pas être utilisés en tant que PipelineParameters.

Des PipelineParameters peuvent également être utilisés 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 situé sur le « workspaceblobstore » nommé « input_data ». Si le pipeline est soumis 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 du PipelineParameter « input_data », utilisez :


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