Udostępnij za pośrednictwem


PipelineParameter Klasa

Definiuje parametr w wykonaniu potoku.

Użyj parametrów PipelineParameters, aby utworzyć uniwersalne potoki, które można ponownie przesłać później z różnych wartości parametrów.

Inicjowanie parametrów potoku.

Dziedziczenie
builtins.object
PipelineParameter

Konstruktor

PipelineParameter(name, default_value)

Parametry

Nazwa Opis
name
Wymagane
str

Nazwa parametru potoku.

default_value
Wymagane

Wartość domyślna parametru potoku.

name
Wymagane
str

Nazwa parametru potoku.

default_value
Wymagane

Wartość domyślna parametru potoku.

Uwagi

Parametry potoku można dodać do dowolnego kroku podczas tworzenia potoku. Po przesłaniu potoku można określić wartości tych parametrów.

Przykład dodawania parametru PipelineParameter do kroku jest następujący:


   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)

W tym przykładzie parametr PipelineParameter o nazwie "pipeline_arg" został dodany do argumentów języka PythonScriptStep. Po uruchomieniu skryptu języka Python wartość parametru PipelineParameter zostanie podana za pośrednictwem argumentów wiersza polecenia. Ten parametr PipelineParameter można również dodać do innych kroków w potoku, aby podać wspólne wartości dla wielu kroków w potoku. Określone potoki mogą mieć wiele parametrów PipelineParameters.

Aby przesłać ten potok i określić wartość parametru PipelineParameter "pipeline_arg":


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

Uwaga: jeśli w słowniku pipeline_parameters nie określono wartości "pipeline_arg", wartość domyślna parametru PipelineParameter podana podczas konstruowania potoku będzie używana (w tym przypadku podana wartość domyślna to "default_val").

Nie można używać parametrów wielowierszowych jako PipelineParameters.

Parametry PipelineParameters można również używać z elementami DataPath i DataPathComputeBinding do określania danych wejściowych kroków. Dzięki temu potok może być uruchamiany z różnych danych wejściowych.

Przykład użycia ścieżki DataPath z parametrami PipelineParameters jest następujący:


   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)

W tym przypadku wartość domyślna parametru "input_data" odwołuje się do pliku w "workspaceblobstore" o nazwie "input_data". Jeśli potok zostanie przesłany bez określenia wartości dla tego parametru PipelineParameter, zostanie użyta wartość domyślna. Aby przesłać ten potok i określić wartość parametru 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})