PipelineParameter クラス
パイプライン実行のパラメーターを定義します。
PipelineParameter を使用して、さまざまなパラメーター値により、後で再送信できる汎用的なパイプラインを構築します。
パイプライン パラメーターを初期化します。
- 継承
-
builtins.objectPipelineParameter
コンストラクター
PipelineParameter(name, default_value)
パラメーター
名前 | 説明 |
---|---|
name
必須
|
パイプライン パラメーターの名前。 |
default_value
必須
|
パイプライン パラメーターの既定値。 |
name
必須
|
パイプライン パラメーターの名前。 |
default_value
必須
|
パイプライン パラメーターの既定値。 |
注釈
PipelineParameter は、パイプラインを構築するときに任意のステップに追加できます。 パイプラインを送信するときに、これらのパラメーターの値を指定できます。
ステップに PipelineParameter を追加する例を次に示します。
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)
この例では、"pipeline_arg" という名前の PipelineParameter が、PythonScriptStep の引数に追加されました。 Python スクリプトを実行すると、コマンド ライン引数を使用して PipelineParameter の値が提供されます。 この PipelineParameter は、パイプライン内の他のステップに追加して、パイプラインの複数のステップに共通の値を提供することもできます。 パイプラインには、複数の PipelineParameter を指定できます。
このパイプラインを送信し、"pipeline_arg" PipelineParameter の値を指定するには、次を使用します。
pipeline = Pipeline(workspace=ws, steps=[train_step])
pipeline_run = Experiment(ws, 'train').submit(pipeline, pipeline_parameters={"pipeline_arg": "test_value"})
注: pipeline_parameters 辞書に "pipeline_arg" が指定されていなかった場合は、パイプラインの構築時に指定された PipelineParameter の既定値が使用されます (この場合、指定された既定値は "default_val" でした)。
複数行のパラメーターを PipelineParameter として使用することはできません。
PipelineParameter は、DataPath および DataPathComputeBinding と共に使用して、ステップ入力を指定することもできます。 これにより、さまざまな入力データを使用してパイプラインを実行できます。
PipelineParameter でデータパスを使用する例を次に示します。
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)
この場合、"input_data" パラメーターの既定値は "input_data" という名前の "workspaceblobstore" にあるファイルを参照します。 この PipelineParameter の値を指定せずにパイプラインを送信した場合は、既定値が使用されます。 このパイプラインを送信し、"input_data" PipelineParameter の値を指定するには、次を使用します。
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})