PythonScriptStep クラス
Python スクリプトを実行する Azure ML パイプライン ステップを作成します。
PythonScriptStep の使用例については、ノートブックの https://aka.ms/pl-get-startedを参照してください。
Python スクリプトを実行する Azure ML パイプライン ステップを作成します。
コンストラクター
PythonScriptStep(script_name, name=None, arguments=None, compute_target=None, runconfig=None, runconfig_pipeline_params=None, inputs=None, outputs=None, params=None, source_directory=None, allow_reuse=True, version=None, hash_paths=None)
パラメーター
名前 | 説明 |
---|---|
script_name
必須
|
[必須] |
name
|
ステップの名前。 指定しない場合は、 規定値: None
|
arguments
|
Python スクリプト ファイルのコマンド ライン引数。 引数は、RunConfiguration の 規定値: None
|
compute_target
|
[必須]使用するコンピューティング先。 指定しない場合は、runconfig のターゲットが使用されます。 このパラメーターは、コンピューティング 先オブジェクトまたはワークスペース上のコンピューティング 先の文字列名として指定できます。 必要に応じて、パイプラインの作成時にコンピューティング ターゲットを使用できない場合は、コンピューティング ターゲット オブジェクトをフェッチしないように ('コンピューティング ターゲット名'、'コンピューティング ターゲットの種類') のタプルを指定できます (AmlCompute 型は 'AmlCompute' で RemoteCompute 型は 'VirtualMachine' です)。 規定値: None
|
runconfig
|
使用するオプションの RunConfiguration。 RunConfiguration を使用して、conda の依存関係や Docker イメージなど、実行の追加要件を指定できます。 指定しない場合は、既定の runconfig が作成されます。 規定値: None
|
runconfig_pipeline_params
|
キーと値のペアをそれぞれ runconfig プロパティの名前を持ち、そのプロパティの PipelineParameter を使用して実行時に runconfig プロパティをオーバーライドします。 サポートされている値: 'NodeCount'、'MpiProcessCountPerNode'、'TensorflowWorkerCount'、'TensorflowParameterServerCount' 規定値: None
|
inputs
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
入力ポート バインドの一覧。 規定値: None
|
outputs
|
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
出力ポート バインドの一覧。 規定値: None
|
params
|
環境変数として "AML_PARAMETER_" で登録された名前と値のペアのディクショナリ。 規定値: None
|
source_directory
|
手順で使用する Python スクリプト、conda env、およびその他のリソースを含むフォルダー。 規定値: None
|
allow_reuse
|
同じ設定で再実行するときに、前の結果をステップで再利用するかどうかを示します。 再利用は既定で有効になっています。 ステップの内容 (スクリプト/依存関係) と入力とパラメーターが変更されていない場合は、この手順の前の実行からの出力が再利用されます。 ステップを再利用すると、ジョブをコンピューティングに送信する代わりに、前の実行の結果が後続のステップですぐに使用できるようになります。 Azure Machine Learning データセットを入力として使用する場合、再利用は、基になるデータが変更されたかどうかではなく、データセットの定義が変更されたかどうかによって決まります。 規定値: True
|
version
|
ステップの機能の変更を示すオプションのバージョン タグ。 規定値: None
|
hash_paths
|
非推奨: 不要になりました。 ステップの内容の変更を確認するときにハッシュするパスの一覧。 変更が検出されない場合、パイプラインは前回の実行のステップの内容を再利用します。 既定では、.amlignore または .gitignore にリストされているファイルを除き、 規定値: None
|
script_name
必須
|
[必須] |
name
必須
|
ステップの名前。 指定しない場合は、 |
arguments
必須
|
[str]
Python スクリプト ファイルのコマンド ライン引数。 引数は、RunConfiguration の |
compute_target
必須
|
[必須]使用するコンピューティング先。 指定しない場合は、runconfig のターゲットが使用されます。 このパラメーターは、コンピューティング 先オブジェクトまたはワークスペース上のコンピューティング 先の文字列名として指定できます。 必要に応じて、パイプラインの作成時にコンピューティング ターゲットを使用できない場合は、コンピューティング ターゲット オブジェクトをフェッチしないように ('コンピューティング ターゲット名'、'コンピューティング ターゲットの種類') のタプルを指定できます (AmlCompute 型は 'AmlCompute' で RemoteCompute 型は 'VirtualMachine' です)。 |
runconfig
必須
|
使用するオプションの RunConfiguration。 RunConfiguration を使用して、conda の依存関係や Docker イメージなど、実行の追加要件を指定できます。 指定しない場合は、既定の runconfig が作成されます。 |
runconfig_pipeline_params
必須
|
キーと値のペアをそれぞれ runconfig プロパティの名前を持ち、そのプロパティの PipelineParameter を使用して実行時に runconfig プロパティをオーバーライドします。 サポートされている値: 'NodeCount'、'MpiProcessCountPerNode'、'TensorflowWorkerCount'、'TensorflowParameterServerCount' |
inputs
必須
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
入力ポート バインドの一覧。 |
outputs
必須
|
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
出力ポート バインドの一覧。 |
params
必須
|
<xref:<xref:{str: str}>>
名前と値のペアのディクショナリ。 ">>AML_PARAMETER_<<" を使用して環境変数として登録されます。 |
source_directory
必須
|
手順で使用する Python スクリプト、conda env、およびその他のリソースを含むフォルダー。 |
allow_reuse
必須
|
同じ設定で再実行するときに、前の結果をステップで再利用するかどうかを示します。 再利用は既定で有効になっています。 ステップの内容 (スクリプト/依存関係) と入力とパラメーターが変更されていない場合は、この手順の前の実行からの出力が再利用されます。 ステップを再利用すると、ジョブをコンピューティングに送信する代わりに、前の実行の結果が後続のステップですぐに使用できるようになります。 Azure Machine Learning データセットを入力として使用する場合、再利用は、基になるデータが変更されたかどうかではなく、データセットの定義が変更されたかどうかによって決まります。 |
version
必須
|
ステップの機能の変更を示すオプションのバージョン タグ。 |
hash_paths
必須
|
非推奨: 不要になりました。 ステップの内容の変更を確認するときにハッシュするパスの一覧。 変更が検出されない場合、パイプラインは前回の実行のステップの内容を再利用します。 既定では、.amlignore または .gitignore にリストされているファイルを除き、 |
注釈
PythonScriptStep は、コンピューティング 先で Python スクリプトを実行するための基本的な組み込み手順です。 スクリプト名とその他の省略可能なパラメーター (スクリプトの引数、コンピューティング ターゲット、入力、出力など) を受け取ります。 コンピューティング 先が指定されていない場合は、ワークスペースの既定のコンピューティング 先が使用されます。 RunConfigurationを使用して、conda の依存関係や Docker イメージなどの PythonScriptStep の要件を指定することもできます。
PythonScriptStep を使用する場合のベスト プラクティスは、スクリプトとステップに関連付けられている依存ファイルに別のフォルダーを使用し、そのフォルダーを source_directory
パラメーターで指定することです。
このベスト プラクティスに従う場合、2 つの利点があります。 1 つ目は、ステップに必要なスナップショットのみがスナップショットされるため、ステップ用に作成されるスナップショットのサイズを小さくするのに役立ちます。 次に、スナップショットの再アップロードをトリガーする source_directory
に変更がない場合は、前の実行からのステップの出力を再利用できます。
次のコード例は、機械学習トレーニング シナリオでの PythonScriptStep の使用を示しています。 この例の詳細については、 https://aka.ms/pl-first-pipelineを参照してください。
from azureml.pipeline.steps import PythonScriptStep
trainStep = PythonScriptStep(
script_name="train.py",
arguments=["--input", blob_input_data, "--output", output_data1],
inputs=[blob_input_data],
outputs=[output_data1],
compute_target=compute_target,
source_directory=project_folder
)
PythonScriptSteps では、さまざまな入力と出力の種類がサポートされています。 これには、入力とDatasetConsumptionConfigのOutputDatasetConfig、入力と出力のPipelineOutputAbstractDataset、PipelineDataが含まれます。
ステップの入力と出力として Dataset を使用する例を次に示します。
from azureml.core import Dataset
from azureml.pipeline.steps import PythonScriptStep
from azureml.pipeline.core import Pipeline, PipelineData
# get input dataset
input_ds = Dataset.get_by_name(workspace, 'weather_ds')
# register pipeline output as dataset
output_ds = PipelineData('prepared_weather_ds', datastore=datastore).as_dataset()
output_ds = output_ds.register(name='prepared_weather_ds', create_new_version=True)
# configure pipeline step to use dataset as the input and output
prep_step = PythonScriptStep(script_name="prepare.py",
inputs=[input_ds.as_named_input('weather_ds')],
outputs=[output_ds],
compute_target=compute_target,
source_directory=project_folder)
その他の入力/出力の種類の使用例については、対応するドキュメント ページを参照してください。
メソッド
create_node |
PythonScriptStep のノードを作成し、指定したグラフに追加します。 このメソッドは、直接使用するためのものではありません。 この手順でパイプラインがインスタンス化されると、Azure ML は、このメソッドに必要なパラメーターを自動的に渡して、そのステップをワークフローを表すパイプライン グラフに追加できるようにします。 |
create_node
PythonScriptStep のノードを作成し、指定したグラフに追加します。
このメソッドは、直接使用するためのものではありません。 この手順でパイプラインがインスタンス化されると、Azure ML は、このメソッドに必要なパラメーターを自動的に渡して、そのステップをワークフローを表すパイプライン グラフに追加できるようにします。
create_node(graph, default_datastore, context)
パラメーター
名前 | 説明 |
---|---|
graph
必須
|
ノードを追加するグラフ オブジェクト。 |
default_datastore
必須
|
既定のデータストア。 |
context
必須
|
<xref:azureml.pipeline.core._GraphContext>
グラフ コンテキスト。 |
戻り値
型 | 説明 |
---|---|
作成されたノード。 |