Share via


PipelineParameter Classe

Definisce un parametro in un'esecuzione della pipeline.

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

Inizializzare i parametri della pipeline.

Ereditarietà
builtins.object
PipelineParameter

Costruttore

PipelineParameter(name, default_value)

Parametri

Nome Descrizione
name
Necessario
str

Nome del parametro della pipeline.

default_value
Necessario

Valore predefinito del parametro della pipeline.

name
Necessario
str

Nome del parametro della pipeline.

default_value
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 pipelineParameter può anche essere aggiunto ad altri passaggi della pipeline per fornire valori comuni a più passaggi nella pipeline. Le pipeline possono avere più pipelineParameter 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 quando la pipeline è stata costruita verrà usata (in questo caso il valore predefinito specificato era "default_val").

I parametri multilinea non possono essere usati come PipelineParameters.

È anche possibile usare PipelineParameters 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 nell'archivio "workspaceblobstore" denominato "input_data". Se la pipeline viene inviata senza specificare un valore per questo 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})