PythonScriptStep クラス

Python スクリプトを実行する Azure ML パイプライン ステップを作成します。

PythonScriptStep の使用例については、ノートブック https://aka.ms/pl-get-started を参照してください。

Python スクリプトを実行する Azure ML パイプライン ステップを作成します。

継承
azureml.pipeline.core._python_script_step_base._PythonScriptStepBase
PythonScriptStep

コンストラクター

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
str
必須

[必須] source_directory を基準にした Python スクリプトの名前。

name
str
既定値: None

ステップの名前。 指定されなかった場合は、script_name が使用されます。

arguments
list
既定値: None

Python スクリプト ファイルのコマンド ライン引数。 引数は、RunConfiguration の arguments パラメーターを介してコンピューティングに渡されます。 特殊なシンボルなどの引数を処理する方法の詳細については、「RunConfiguration」を参照してください。

compute_target
Union[DsvmCompute, AmlCompute, RemoteCompute, HDInsightCompute, str, tuple]
既定値: None

[必須] 使用するコンピューティング先。 指定されなかった場合は、runconfig のターゲットが使用されます。 このパラメーターはコンピューティング先オブジェクトとして、またはワークスペース上のコンピューティング先の文字列名として指定できます。 必要に応じて、パイプラインの作成時にコンピューティング先が使用できない場合は、('コンピューティング先の名前'、'コンピューティング先の型') のタプルを指定することにより、コンピューティング先オブジェクトがフェッチされないようにすることもできます (AmlCompute の型は 'AmlCompute' で、RemoteCompute の型は 'VirtualMachine' です)。

runconfig
RunConfiguration
既定値: None

使用するオプションの RunConfiguration。 RunConfiguration を使用すると、conda の依存関係や docker イメージなどの実行に関する追加の要件を指定できます。 指定されなかった場合は、既定の runconfig が作成されます。

runconfig_pipeline_params
dict[str, PipelineParameter]
既定値: None

キーに runconfig プロパティの名前、値にそのプロパティの PipelineParameter を持つキーと値のペアを使用して、実行時に runconfig プロパティをオーバーライドします。

サポートされる値は、'NodeCount'、'MpiProcessCountPerNode'、'TensorflowWorkerCount'、'TensorflowParameterServerCount' です。

outputs
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
既定値: None

出力ポート バインドのリスト。

params
dict
既定値: None

"AML_PARAMETER_" を使用して環境変数として登録された名前と値のペアのディクショナリ。

source_directory
str
既定値: None

ステップで使用される Python スクリプト、conda env、その他のリソースを含むフォルダー。

allow_reuse
bool
既定値: True

同じ設定で再実行されたときに、ステップで前の結果を再利用するかどうかを示します。 再利用は既定で有効になっています。 ステップの内容 (スクリプトや依存関係) だけでなく、入力とパラメーターも変更されていない場合は、このステップの前の実行からの出力が再利用されます。 ステップを再利用する場合、計算するジョブを送信する代わりに、前の実行の結果を後続のステップですぐに利用できるようにします。 Azure Machine Learning データセットを入力として使用する場合、再利用は、基になるデータが変更されたかどうかではなく、データセットの定義が変更されたかどうかによって決まります。

version
str
既定値: None

ステップの機能変更を示す省略可能なバージョン タグ。

hash_paths
list
既定値: None

非推奨: 不要になりました。

ステップの内容の変更を確認するときにハッシュするパスのリスト。 変更が検出されない場合、パイプラインは以前の実行のステップの内容を再利用します。 既定では、source_directory の内容は .amlignore または .gitignore に示されているファイルを除いてハッシュされます。

script_name
str
必須

[必須] source_directory を基準にした Python スクリプトの名前。

name
str
必須

ステップの名前。 指定されなかった場合は、script_name が使用されます。

arguments
[str]
必須

Python スクリプト ファイルのコマンド ライン引数。 引数は、RunConfiguration の arguments パラメーターを介してコンピューティングに渡されます。 特殊なシンボルなどの引数を処理する方法の詳細については、「RunConfiguration」を参照してください。

compute_target
Union[DsvmCompute, AmlCompute, RemoteCompute, HDInsightCompute, str, tuple]
必須

[必須] 使用するコンピューティング先。 指定されなかった場合は、runconfig のターゲットが使用されます。 このパラメーターはコンピューティング先オブジェクトとして、またはワークスペース上のコンピューティング先の文字列名として指定できます。 必要に応じて、パイプラインの作成時にコンピューティング先が使用できない場合は、('コンピューティング先の名前'、'コンピューティング先の型') のタプルを指定することにより、コンピューティング先オブジェクトがフェッチされないようにすることもできます (AmlCompute の型は 'AmlCompute' で、RemoteCompute の型は 'VirtualMachine' です)。

runconfig
RunConfiguration
必須

使用するオプションの RunConfiguration。 RunConfiguration を使用して、conda の依存関係や Docker イメージなど、実行の追加要件を指定できます。 指定されなかった場合は、既定の runconfig が作成されます。

runconfig_pipeline_params
dict[str, PipelineParameter]
必須

キーに runconfig プロパティの名前、値にそのプロパティの PipelineParameter を持つキーと値のペアを使用して、実行時に runconfig プロパティをオーバーライドします。

サポートされる値は、'NodeCount'、'MpiProcessCountPerNode'、'TensorflowWorkerCount'、'TensorflowParameterServerCount' です。

params
<xref:<xref:{str: str}>>
必須

名前と値のペアのディクショナリ。 "AML_PARAMETER_<<">> を使用して環境変数として登録されます。

source_directory
str
必須

ステップで使用される Python スクリプト、conda env、その他のリソースを含むフォルダー。

allow_reuse
bool
必須

同じ設定で再実行されたときに、ステップで前の結果を再利用するかどうかを示します。 再利用は既定で有効になっています。 ステップの内容 (スクリプトや依存関係) だけでなく、入力とパラメーターも変更されていない場合は、このステップの前の実行からの出力が再利用されます。 ステップを再利用する場合、計算するジョブを送信する代わりに、前の実行の結果を後続のステップですぐに利用できるようにします。 Azure Machine Learning データセットを入力として使用する場合、再利用は、基になるデータが変更されたかどうかではなく、データセットの定義が変更されたかどうかによって決まります。

version
str
必須

ステップの機能変更を示す省略可能なバージョン タグ。

hash_paths
list
必須

非推奨: 不要になりました。

ステップの内容の変更を確認するときにハッシュするパスのリスト。 変更が検出されない場合、パイプラインは以前の実行のステップの内容を再利用します。 既定では、source_directory の内容は .amlignore または .gitignore に示されているファイルを除いてハッシュされます。

注釈

PythonScriptStep は、コンピューティング先で Python スクリプトを実行するための基本的な組み込みステップです。 スクリプト名とその他の省略可能なパラメーター (スクリプト、コンピューティング先、入力、出力の引数など) を受け取ります。 コンピューティング先が指定されなかった場合は、ワークスペースの既定のコンピューティング先が使用されます。 また、RunConfiguration を使用して、conda の依存関係や docker イメージなどの Python Scriptstep の要件を指定することもできます。

PythonScriptStep で使用する場合のベスト プラクティスは、スクリプトと、そのステップに関連付けられた依存ファイル用に別々のフォルダーを使用し、source_directory パラメーターでそのフォルダーを指定することです。 このベスト プラクティスに従うと、2 つの利点があります。 まず、ステップに必要なものだけがスナップショットされるため、ステップに対して作成されるスナップショットのサイズを小さくするのに役立ちます。 次に、スナップショットの再アップロードをトリガーする 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 や、入力と出力用の OutputDatasetConfigPipelineOutputAbstractDataset、および 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
Graph
必須

ノードを追加するグラフ オブジェクト。

default_datastore
Union[AbstractAzureStorageDatastore, AzureDataLakeDatastore]
必須

既定のデータストア。

context
<xref:azureml.pipeline.core._GraphContext>
必須

グラフ コンテキスト。

戻り値

作成されたノード。

の戻り値の型 :