次の方法で共有


CommandStep クラス

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

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

コンストラクター

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

source_directoryに対する実行可能ファイル/スクリプトの実行またはパスを指定するコマンド。 runconfig が指定されていない限り、必須です。 これは、1 つの文字列内の文字列引数で指定することも、リスト内の input/output/PipelineParameter を使用して指定することもできます。

規定値: None
name
str

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

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

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

規定値: None
runconfig

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

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

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

サポートされている値: 'NodeCount'、'MpiProcessCountPerNode'、'TensorflowWorkerCount'、'TensorflowParameterServerCount'

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

入力ポート バインドの一覧。

規定値: None
outputs

出力ポート バインドの一覧。

規定値: None
params

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

規定値: None
source_directory
str

スクリプト、conda env、および手順で使用されるその他のリソースを含むフォルダー。

規定値: None
allow_reuse

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

規定値: True
version
str

ステップの機能の変更を示すオプションのバージョン タグ。

規定値: None
command
必須
list または str

source_directoryに対する実行可能ファイル/スクリプトの実行またはパスを指定するコマンド。 runconfig が指定されていない限り、必須です。 これは、1 つの文字列内の文字列引数で指定することも、リスト内の input/output/PipelineParameter を使用して指定することもできます。

name
必須
str

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

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

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

runconfig
必須

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

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

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

サポートされている値: 'NodeCount'、'MpiProcessCountPerNode'、'TensorflowWorkerCount'、'TensorflowParameterServerCount'

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

入力ポート バインドの一覧。

outputs
必須

出力ポート バインドの一覧。

params
必須

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

source_directory
必須
str

スクリプト、conda env、および手順で使用されるその他のリソースを含むフォルダー。

allow_reuse
必須

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

version
必須
str

ステップの機能の変更を示すオプションのバージョン タグ。

注釈

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

CommandStep を使用する場合のベスト プラクティスは、実行可能ファイルまたはスクリプト用の別のフォルダーを使用して、ステップに関連付けられている依存ファイルを実行し、そのフォルダーを source_directory パラメーターで指定することです。 このベスト プラクティスに従う場合、2 つの利点があります。 1 つ目は、ステップに必要なスナップショットのみがスナップショットされるため、ステップ用に作成されるスナップショットのサイズを小さくするのに役立ちます。 次に、スナップショットの再アップロードをトリガーする 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
必須

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

default_datastore
必須

既定のデータストア。

context
必須
<xref:_GraphContext>

グラフ コンテキスト。

戻り値

説明

作成されたノード。