次の方法で共有


PipelineData クラス

Azure Machine Learning パイプライン内の中間データを表します。

パイプラインで使用されるデータは、1 つのステップの出力として PipelineData オブジェクトを指定し、1 つ以上の後続のステップの入力を指定することで、あるステップで生成し、別のステップで使用できます。

パイプライン データを使用している場合は、使用されているディレクトリが存在することを確認してください。

ディレクトリが存在することを確認する Python の例。1 つのパイプライン ステップで output_folder という名前の出力ポートがあり、このフォルダー内の相対パスにデータを書き込む必要があるとします。


   import os
   os.makedirs(args.output_folder, exist_ok=True)
   f = open(args.output_folder + '/relative_path/file_name', 'w+')

PipelineData では、データ アクセスと配信に推奨されるアプローチではなくなった基になる DataReference を使用します。代わりに OutputFileDatasetConfig を使用してください。サンプルについては、 OutputFileDatasetConfig を使用したパイプラインを参照してください。

PipelineData を初期化します。

コンストラクター

PipelineData(name, datastore=None, output_name=None, output_mode='mount', output_path_on_compute=None, output_overwrite=None, data_type=None, is_directory=None, pipeline_output_name=None, training_output=None)

パラメーター

名前 説明
name
必須
str

PipelineData オブジェクトの名前。文字、数字、アンダースコアのみを含めることができます。

PipelineData 名は、ステップの出力を識別するために使用されます。 パイプラインの実行が完了したら、ステップ名と出力名を使用して特定の出力にアクセスできます。 名前は、パイプラインの 1 つのステップ内で一意である必要があります。

datastore

PipelineData が存在するデータストア。 指定しない場合は、既定のデータストアが使用されます。

規定値: None
output_name
str

None 名が使用されている場合の出力の名前。 文字、数字、アンダースコアのみを含めることができます。

規定値: None
output_mode
str

生成手順でデータにアクセスするために "upload" メソッドまたは "mount" メソッドを使用するかどうかを指定します。

規定値: mount
output_path_on_compute
str

output_mode = "upload" の場合、このパラメーターはモジュールが出力を書き込むパスを表します。

規定値: None
output_overwrite

output_mode = "upload" の場合、このパラメーターは既存のデータを上書きするかどうかを指定します。

規定値: None
data_type
str

省略可。 データ型を使用して、出力の予想される型を指定し、使用する手順でデータを使用する方法を詳しく説明できます。 任意のユーザー定義文字列を指定できます。

規定値: None
is_directory

データがディレクトリファイルか単一ファイルかを指定します。 これは、 data_type パラメーターが指定されていない場合に Azure ML バックエンドによって使用されるデータ型を決定するためにのみ使用されます。 既定値は False です。

規定値: None
pipeline_output_name

指定された場合、この出力は PipelineRun.get_pipeline_output()を使用して使用できます。 パイプラインの出力名は、パイプライン内で一意である必要があります。

規定値: None
training_output

トレーニング結果の出力を定義します。 これは、メトリックやモデルなど、さまざまな種類の出力が生成される特定のトレーニングにのみ必要です。 たとえば、 AutoMLStep 結果はメトリックとモデルになります。 また、最適なモデルを取得するために使用される特定のトレーニング イテレーションまたはメトリックを定義することもできます。 HyperDriveStepでは、出力に含める特定のモデル ファイルを定義することもできます。

規定値: None
name
必須
str

PipelineData オブジェクトの名前。文字、数字、アンダースコアのみを含めることができます。

PipelineData 名は、ステップの出力を識別するために使用されます。 パイプラインの実行が完了したら、ステップ名と出力名を使用して特定の出力にアクセスできます。 名前は、パイプラインの 1 つのステップ内で一意である必要があります。

datastore
必須

PipelineData が存在するデータストア。 指定しない場合は、既定のデータストアが使用されます。

output_name
必須
str

None 名が使用されている場合の出力の名前。 文字、数字、およびアンダースコアのみを含めることができます。

output_mode
必須
str

生成手順でデータにアクセスするために "upload" メソッドまたは "mount" メソッドを使用するかどうかを指定します。

output_path_on_compute
必須
str

output_mode = "upload" の場合、このパラメーターはモジュールが出力を書き込むパスを表します。

output_overwrite
必須

output_mode = "upload" の場合、このパラメーターは既存のデータを上書きするかどうかを指定します。

data_type
必須
str

省略可。 データ型を使用して、出力の予想される型を指定し、使用する手順でデータを使用する方法を詳しく説明できます。 任意のユーザー定義文字列を指定できます。

is_directory
必須

データがディレクトリファイルか単一ファイルかを指定します。 これは、 data_type パラメーターが指定されていない場合に Azure ML バックエンドによって使用されるデータ型を決定するためにのみ使用されます。 既定値は False です。

pipeline_output_name
必須
str

指定された場合、この出力は PipelineRun.get_pipeline_output()を使用して使用できます。 パイプラインの出力名は、パイプライン内で一意である必要があります。

training_output
必須

トレーニング結果の出力を定義します。 これは、メトリックやモデルなど、さまざまな種類の出力が生成される特定のトレーニングにのみ必要です。 たとえば、 AutoMLStep 結果はメトリックとモデルになります。 また、最適なモデルを取得するために使用される特定のトレーニング イテレーションまたはメトリックを定義することもできます。 HyperDriveStepでは、出力に含める特定のモデル ファイルを定義することもできます。

注釈

PipelineData は、ステップが実行時に生成するデータ出力を表します。 PipelineData を使用して、ステップによって生成されるファイルまたはディレクトリを記述する手順を作成します。 これらのデータ出力は、指定されたデータストアに追加され、後で取得して表示できます。

たとえば、次のパイプライン ステップでは、"model" という名前の 1 つの出力が生成されます。


   from azureml.pipeline.core import PipelineData
   from azureml.pipeline.steps import PythonScriptStep

   datastore = ws.get_default_datastore()
   step_output = PipelineData("model", datastore=datastore)
   step = PythonScriptStep(script_name="train.py",
                           arguments=["--model", step_output],
                           outputs=[step_output],
                           compute_target=aml_compute,
                           source_directory=source_directory)

この場合、train.py スクリプトは、生成されたモデルを、–model 引数を使用してスクリプトに提供される場所に書き込みます。

PipelineData オブジェクトは、パイプラインを構築してステップの依存関係を記述するときにも使用されます。 ステップが別のステップの出力を入力として必要とするように指定するには、両方のステップのコンストラクターで PipelineData オブジェクトを使用します。

たとえば、パイプライントレーニングステップは、パイプラインプロセスステップのprocess_step_output出力に依存します。


   from azureml.pipeline.core import Pipeline, PipelineData
   from azureml.pipeline.steps import PythonScriptStep

   datastore = ws.get_default_datastore()
   process_step_output = PipelineData("processed_data", datastore=datastore)
   process_step = PythonScriptStep(script_name="process.py",
                                   arguments=["--data_for_train", process_step_output],
                                   outputs=[process_step_output],
                                   compute_target=aml_compute,
                                   source_directory=process_directory)
   train_step = PythonScriptStep(script_name="train.py",
                                 arguments=["--data_for_train", process_step_output],
                                 inputs=[process_step_output],
                                 compute_target=aml_compute,
                                 source_directory=train_directory)

   pipeline = Pipeline(workspace=ws, steps=[process_step, train_step])

これにより、2 つの手順でパイプラインが作成されます。 プロセス ステップが最初に実行され、完了した後、トレーニング ステップが実行されます。 Azure ML は、プロセス ステップによって生成された出力をトレーニング ステップに提供します。

PipelineData を使用してパイプラインを構築する例については、このページを参照してください。 https://aka.ms/pl-data-dep

サポートされているコンピューティングの種類の場合、PipelineData を使用して、実行でデータを生成および使用する方法を指定することもできます。 次の 2 つの方法がサポートされています。

  • マウント (既定値): 入力データまたは出力データはコンピューティング ノード上のローカル ストレージにマウントされ、このデータのパス ($AZUREML_DATAREFERENCE_name) を指す環境変数が設定されます。 便宜上、PipelineData オブジェクトを引数の 1 つとしてスクリプトに渡すことができます。たとえば、argumentsPythonScriptStep パラメーターを使用すると、オブジェクトはデータへのパスに解決されます。 出力の場合、コンピューティング スクリプトでは、この出力パスにファイルまたはディレクトリを作成する必要があります。 Pipeline オブジェクトを引数として渡すときに使用される環境変数の値を確認するには、 get_env_variable_name メソッドを使用します。

  • アップロード: スクリプトで生成されるファイル名またはディレクトリ名に対応する output_path_on_compute を指定します。 (この場合、環境変数は使用されません)。

メソッド

as_dataset

中間出力をデータセットに昇格します。

このデータセットは、ステップの実行後に存在します。 後続の入力をデータセットとして使用するには、出力をデータセットに昇格させる必要があることに注意してください。 as_datasetが出力で呼び出されず、入力でのみ呼び出される場合は noop になり、入力はデータセットとして使用されません。 次のコード例は、as_datasetの正しい使用方法を示しています。


   # as_dataset is called here and is passed to both the output and input of the next step.
   pipeline_data = PipelineData('output').as_dataset()

   step1 = PythonScriptStep(..., outputs=[pipeline_data])
   step2 = PythonScriptStep(..., inputs=[pipeline_data])
as_download

ダウンロードとして PipelineData を使用します。

as_input

InputPortBinding を作成し、入力名を指定します (ただし、既定のモードを使用します)。

as_mount

PipelineData をマウントとして使用します。

create_input_binding

入力バインドを作成します。

get_env_variable_name

この PipelineData の環境変数の名前を返します。

as_dataset

中間出力をデータセットに昇格します。

このデータセットは、ステップの実行後に存在します。 後続の入力をデータセットとして使用するには、出力をデータセットに昇格させる必要があることに注意してください。 as_datasetが出力で呼び出されず、入力でのみ呼び出される場合は noop になり、入力はデータセットとして使用されません。 次のコード例は、as_datasetの正しい使用方法を示しています。


   # as_dataset is called here and is passed to both the output and input of the next step.
   pipeline_data = PipelineData('output').as_dataset()

   step1 = PythonScriptStep(..., outputs=[pipeline_data])
   step2 = PythonScriptStep(..., inputs=[pipeline_data])
as_dataset()

戻り値

説明

データセットとしての中間出力。

as_download

ダウンロードとして PipelineData を使用します。

as_download(input_name=None, path_on_compute=None, overwrite=None)

パラメーター

名前 説明
input_name
str

この入力の名前を指定するために使用します。

規定値: None
path_on_compute
str

ダウンロード先のコンピューティングのパス。

規定値: None
overwrite

既存のデータを上書きするかどうかを示すために使用します。

規定値: None

戻り値

説明

この PipelineData をソースとして使用する InputPortBinding。

as_input

InputPortBinding を作成し、入力名を指定します (ただし、既定のモードを使用します)。

as_input(input_name)

パラメーター

名前 説明
input_name
必須
str

この入力の名前を指定するために使用します。

戻り値

説明

この PipelineData をソースとして使用する InputPortBinding。

as_mount

PipelineData をマウントとして使用します。

as_mount(input_name=None)

パラメーター

名前 説明
input_name
str

この入力の名前を指定するために使用します。

規定値: None

戻り値

説明

この PipelineData をソースとして使用する InputPortBinding。

create_input_binding

入力バインドを作成します。

create_input_binding(input_name=None, mode=None, path_on_compute=None, overwrite=None)

パラメーター

名前 説明
input_name
str

入力の名前。

規定値: None
mode
str

PipelineData にアクセスするモード ("mount" または "download")。

規定値: None
path_on_compute
str

"ダウンロード" モードの場合、データが存在するコンピューティング上のパス。

規定値: None
overwrite

"ダウンロード" モードの場合、既存のデータを上書きするかどうか。

規定値: None

戻り値

説明

この PipelineData をソースとして使用する InputPortBinding。

get_env_variable_name

この PipelineData の環境変数の名前を返します。

get_env_variable_name()

戻り値

説明
str

環境変数の名前。

属性

data_type

生成されるデータの種類。

戻り値

説明
str

データ型名。

datastore

PipelineData が存在するデータストア。

戻り値

説明

データストア オブジェクト。

name

PipelineData オブジェクトの名前。

戻り値

説明
str

名前。