HyperDriveStep 類別

建立 Azure ML 管線步驟,以針對 Machine Learning 模型定型執行超參數微調。

如需使用 HyperDriveStep 的範例,請參閱筆記本 https://aka.ms/pl-hyperdrive

建立 Azure ML 管線步驟,以針對 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

估算器專案腳本的命令列引數清單。 如果估算器的專案腳本不接受命令列引數,請將此參數值設定為空白清單。

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 物件) 清單。 估算器參數 script_params 接受字典。 不過, estimator_entry_script_argument 參數預期引數為清單。

HyperDriveStep 初始化牽涉到使用 參數指定物件 inputs 清單 DataReference 。 在 Azure ML Pipelines 中,管線步驟可以採取另一個步驟的輸出或 DataReference 物件作為輸入。 因此,建立 HyperDriveStep 時, inputs 必須明確設定 和 outputs 參數,以覆寫 inputs Estimator 物件中指定的參數。

使用 HyperDriveStep 的最佳作法是針對腳本和與步驟相關聯的任何相依檔案使用不同的資料夾,並將該資料夾指定為估算器物件的 source_directory 。 例如,請參閱 source_directory 類別的參數 TensorFlow 。 這麼做有兩個優點。 首先,它有助於減少為步驟建立的快照集大小,因為只會快照集步驟所需的專案。 其次,如果沒有任何變更 source_directory 會觸發 snaphot 重新上傳的 ,則可以重複使用先前執行的步驟輸出。

下列範例示範如何在 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>
必要

圖形內容。

傳回

已建立的節點。

傳回類型