Share via


CommandStep クラス

コマンドを実行する Azure ML パイプライン ステップを作成します。

コマンドを実行する Azure ML パイプライン ステップを作成します。

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

コンストラクター

CommandStep(command=None, name=None, compute_target=None, runconfig=None, runconfig_pipeline_params=None, inputs=None, outputs=None, params=None, source_directory=None, allow_reuse=True, version=None)

パラメーター

command
list または str
既定値: None

実行するコマンド。もしくは、実行可能ファイルまたはスクリプトの source_directory からの相対パス。 runconfig で指定されていない場合、必須です。 1 つの文字列の文字列引数で、または、入力、出力、PipelineParameter を含むリストで指定できます。

name
str
既定値: None

ステップの名前。 指定しない場合、command の最初の単語が使用されます。

compute_target
DsvmCompute または AmlCompute または RemoteCompute または HDInsightCompute または str または tuple
既定値: None

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

runconfig
ScriptRunConfig または RunConfiguration
既定値: None

実験でトレーニングの実行を送信するために必要な情報をカプセル化する、省略可能な構成オブジェクト。

runconfig_pipeline_params
<xref:<xref:{str: PipelineParameter}>>
既定値: None

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

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

inputs
list[InputPortBinding または DataReference または PortDataReference または PipelineData または <xref:azureml.pipeline.core.pipeline_output_dataset.PipelineOutputDataset> または DatasetConsumptionConfig]
既定値: None

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

outputs
list[PipelineData または OutputDatasetConfig または PipelineOutputAbstractDataset または OutputPortBinding]
既定値: None

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

params
dict
既定値: None

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

source_directory
str
既定値: None

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

allow_reuse
bool
既定値: True

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

version
str
既定値: None

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

command
list または str
必須

実行するコマンド。もしくは、実行可能ファイルまたはスクリプトの source_directory からの相対パス。 runconfig で指定されていない場合、必須です。 1 つの文字列の文字列引数で、または、入力、出力、PipelineParameter を含むリストで指定できます。

name
str
必須

ステップの名前。 指定しない場合、command の最初の単語が使用されます。

compute_target
DsvmCompute または AmlCompute または RemoteCompute または HDInsightCompute または str または tuple
必須

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

runconfig
ScriptRunConfig または RunConfiguration
必須

実験でトレーニングの実行を送信するために必要な情報をカプセル化する、省略可能な構成オブジェクト。

runconfig_pipeline_params
<xref:<xref:{str: PipelineParameter}>>
必須

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

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

inputs
list[InputPortBinding または DataReference または PortDataReference または PipelineData または <xref:azureml.pipeline.core.pipeline_output_dataset.PipelineOutputDataset> または DatasetConsumptionConfig]
必須

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

outputs
list[PipelineData または OutputDatasetConfig または PipelineOutputAbstractDataset または OutputPortBinding]
必須

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

params
dict
必須

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

source_directory
str
必須

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

allow_reuse
bool
必須

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

version
str
必須

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

注釈

CommandStep は、指定したコンピューティング先でコマンドを実行するための基本的な組み込みステップです。 コマンドをパラメーターとして、または runconfig などの他のパラメーターから受け取ります。 コンピューティング先、入力、出力など、その他の省略可能なパラメーターも受け取ります。 カスタム Docker イメージなど、CommandStep の要件を指定するには、ScriptRunConfig または RunConfiguration を使用する必要があります。

CommandStep を使用する場合のベスト プラクティスは、実行する実行可能ファイルまたはスクリプトと、そのステップに関連付けられている依存ファイル用に別のフォルダーを使用し、source_directory パラメーターでそのフォルダーを指定することです。 このベスト プラクティスに従うと、2 つの利点があります。 まず、ステップに必要なものだけがスナップショットされるため、ステップに対して作成されるスナップショットのサイズを小さくするのに役立ちます。 次に、スナップショットの再アップロードをトリガーする source_directory に変更がない場合は、以前の実行からのステップの出力を再利用できます。

システムで認識されているコマンドの場合、source_directory は必要ありませんが、ステップに関連付けられている依存ファイルを指定することは可能です。

次のコード例は、機械学習のトレーニング シナリオで CommandStep を使用する方法を示しています。 Linux でファイルを一覧表示するには、次のようにします。


   from azureml.pipeline.steps import CommandStep

   trainStep = CommandStep(name='list step',
                           command='ls -lrt',
                           compute_target=compute_target)

Python スクリプトを実行するには、次のようにします。


   from azureml.pipeline.steps import CommandStep

   trainStep = CommandStep(name='train step',
                           command='python train.py arg1 arg2',
                           source_directory=project_folder,
                           compute_target=compute_target)

ScriptRunConfig を介して Python スクリプトを実行するには、次のようにします。


   from azureml.core import ScriptRunConfig
   from azureml.pipeline.steps import CommandStep

   train_src = ScriptRunConfig(source_directory=script_folder,
                               command='python train.py arg1 arg2',
                               environment=my_env)
   trainStep = CommandStep(name='train step',
                           runconfig=train_src)

パイプラインの作成全般の詳細については、https://aka.ms/pl-first-pipeline を参照してください。

メソッド

create_node

CommandStep のノードを作成し、指定されたグラフに追加します。

このメソッドは直接使用するためのものではありません。 このステップでパイプラインがインスタンス化されると、Azure ML は、ワークフローを表すパイプライン グラフにステップを追加できるように、このメソッドで必要なパラメーターを自動的に渡します。

create_node

CommandStep のノードを作成し、指定されたグラフに追加します。

このメソッドは直接使用するためのものではありません。 このステップでパイプラインがインスタンス化されると、Azure ML は、ワークフローを表すパイプライン グラフにステップを追加できるように、このメソッドで必要なパラメーターを自動的に渡します。

create_node(graph, default_datastore, context)

パラメーター

graph
Graph
必須

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

default_datastore
AbstractAzureStorageDatastore または AzureDataLakeDatastore
必須

既定のデータストア。

context
<xref:_GraphContext>
必須

グラフ コンテキスト。

戻り値

作成されたノード。

の戻り値の型 :