Share via


PipelineParameter Classe

Definisce un parametro in un'esecuzione della pipeline.

Usare PipelineParameters per costruire pipeline versatili che possono essere inviate di nuovo in un secondo momento con valori di parametro variabili.

Inizializzare i parametri della pipeline.

Ereditarietà
builtins.object
PipelineParameter

Costruttore

PipelineParameter(name, default_value)

Parametri

name
str
Necessario

Nome del parametro della pipeline.

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

Valore predefinito del parametro della pipeline.

name
str
Necessario

Nome del parametro della pipeline.

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

Valore predefinito del parametro della pipeline.

Commenti

PipelineParameters può essere aggiunto a qualsiasi passaggio durante la costruzione di una pipeline. Quando viene inviata la pipeline, è possibile specificare i valori di questi parametri.

Un esempio di aggiunta di pipelineParameter a un passaggio è il seguente:


   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)

In questo esempio è stato aggiunto un oggetto PipelineParameter con il nome "pipeline_arg" agli argomenti di pythonScriptStep. Quando viene eseguito lo script Python, il valore di PipelineParameter verrà fornito tramite gli argomenti della riga di comando. Questo oggetto PipelineParameter può anche essere aggiunto ad altri passaggi della pipeline per fornire valori comuni a più passaggi della pipeline. Le pipeline possono avere più pipelineParameters specificate.

Per inviare questa pipeline e specificare il valore per l'uso di PipelineParameter "pipeline_arg":


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

Nota: se "pipeline_arg" non è stato specificato nel dizionario pipeline_parameters, il valore predefinito di PipelineParameter fornito al momento della costruzione della pipeline verrebbe usato (in questo caso il valore predefinito fornito era "default_val").

I parametri a più righe non possono essere usati come PipelineParameters.

PipelineParameters può essere usato anche con DataPath e DataPathComputeBinding per specificare gli input dei passaggi. Ciò consente l'esecuzione di una pipeline con dati di input variabili.

Un esempio di uso di DataPath con PipelineParameters è il seguente:


   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)

In questo caso, il valore predefinito del parametro "input_data" fa riferimento a un file nel "workspaceblobstore" denominato "input_data". Se la pipeline viene inviata senza specificare un valore per questo oggetto PipelineParameter, verrà usato il valore predefinito. Per inviare questa pipeline e specificare il valore per l'uso di 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})