次の方法で共有


HyperDriveStep クラス

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

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

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

コンストラクター

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

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

estimator_entry_script_arguments

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

規定値: None
inputs

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

規定値: None
outputs

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

規定値: None
metrics_output

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

規定値: None
allow_reuse

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

規定値: True
version
str

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

規定値: None
name
必須
str

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

hyperdrive_config
必須

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

estimator_entry_script_arguments
必須

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

inputs
必須

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

outputs
必須

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

metrics_output
必須

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

allow_reuse
必須

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

version
必須
str

バージョン

注釈

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

HyperDriveStep の初期化には、DataReference パラメーターを使用してinputs オブジェクトの一覧を指定する必要があります。 Azure ML Pipelines では、パイプライン ステップは別のステップの出力または DataReference オブジェクトを入力として実行できます。 そのため、HyperDriveStep を作成するときは、 inputs パラメーターと outputs パラメーターを明示的に設定する必要があります。このパラメーターは、Estimator オブジェクトで指定 inputs パラメーターをオーバーライドします。

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

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

default_datastore
必須

既定のデータストア。

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

グラフ コンテキスト。

戻り値

説明

作成されたノード。