HyperDriveStep クラス

Azure ML パイプライン ステップを作成して、Machine Learning モデル トレーニングのためのハイパーパラメーター チューニングを実行します。

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

Azure ML Pipeline ステップを作成して、Machine Learning モデル トレーニング用のハイパーパラメーター チューニングを実行します。

継承
HyperDriveStep

コンストラクター

HyperDriveStep(name, hyperdrive_config, estimator_entry_script_arguments=None, inputs=None, outputs=None, metrics_output=None, allow_reuse=True, version=None)

パラメーター

name
str
必須

[必須] ステップの名前。

hyperdrive_config
HyperDriveConfig
必須

[必須] HyperDrive 実行の構成を定義する HyperDriveConfig。

estimator_entry_script_arguments
list
既定値: None

推定器エントリ スクリプトのコマンド ライン引数のリスト。 推定器のエントリ スクリプトがコマンド ライン引数を受け入れない場合は、このパラメーター値を空のリストに設定します。

inputs
list[Union[InputPortBinding, PipelineOutputAbstractDataset, DataReference, PortDataReference, PipelineData, DatasetConsumptionConfig]]
既定値: None

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

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

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

metrics_output
Union[PipelineData, DataReference, OutputPortBinding]
既定値: None

HyperDrive 実行メトリックを JSON ファイルとして格納する場所を指定する省略可能な値。

allow_reuse
bool
既定値: True

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

version
str
既定値: None

モジュールの機能変更を示すオプションのバージョン タグ。

name
str
必須

[必須] ステップの名前。

hyperdrive_config
HyperDriveConfig
必須

[必須] HyperDrive 実行の構成を定義する HyperDriveConfig。

estimator_entry_script_arguments
list
必須

推定器エントリ スクリプトのコマンド ライン引数のリスト。 推定器のエントリ スクリプトがコマンド ライン引数を受け入れない場合は、このパラメーター値を空のリストに設定します。

outputs
list[Union[PipelineData, PipelineOutputAbstractDataset, OutputPortBinding]]
必須

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

metrics_output
Union[PipelineData, DataReference, OutputPortBinding]
必須

HyperDrive 実行メトリックを JSON ファイルとして格納する場所を指定する省略可能な値。

allow_reuse
bool
必須

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

version
str
必須

version

注釈

(TensorFlow オブジェクトなどの) 推定器オブジェクトで使用されるエントリ スクリプトへの引数は、HyperDriveStep のインスタンスを作成するときに、estimator_entry_script_arguments パラメーターを使用して list として指定する必要があることに注意してください。 推定器パラメーター script_params はディクショナリを受け取ります。 ただし、estimator_entry_script_argument パラメーターの引数はリストである必要があります。

HyperDriveStep の初期化では、inputs パラメーターを使用して DataReference オブジェクトのリストを指定する必要があります。 Azure ML パイプラインでは、パイプライン ステップは、別のステップの出力または DataReference オブジェクトを入力として受け取ることができます。 したがって、HyperDriveStep を作成するときは、inputs および outputs パラメーターを明示的に設定する必要があります。これにより、Estimator オブジェクトで指定された inputs パラメーターがオーバーライドされます。

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

次の例では、Azure Machine Learning パイプラインで HyperDriveStep を使用する方法を示しています。


   metrics_output_name = 'metrics_output'
   metrics_data = PipelineData(name='metrics_data',
                               datastore=datastore,
                               pipeline_output_name=metrics_output_name,
                               training_output=TrainingOutput("Metrics"))

   model_output_name = 'model_output'
   saved_model = PipelineData(name='saved_model',
                               datastore=datastore,
                               pipeline_output_name=model_output_name,
                               training_output=TrainingOutput("Model",
                                                              model_file="outputs/model/saved_model.pb"))

   hd_step_name='hd_step01'
   hd_step = HyperDriveStep(
       name=hd_step_name,
       hyperdrive_config=hd_config,
       inputs=[data_folder],
       outputs=[metrics_data, saved_model])

完全なサンプルは、https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-parameter-tuning-with-hyperdrive.ipynb から入手できます。

メソッド

create_node

HyperDrive ステップからノードを作成し、指定されたグラフに追加します。

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

create_node

HyperDrive ステップからノードを作成し、指定されたグラフに追加します。

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

create_node(graph, default_datastore, context)

パラメーター

graph
Graph
必須

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

default_datastore
Union[AbstractAzureStorageDatastore, AzureDataLakeDatastore]
必須

既定のデータストア。

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

グラフ コンテキスト。

戻り値

作成されたノード。

の戻り値の型 :