HyperDriveStep 類別
建立 Azure ML 管線步驟,以針對 Machine Learning 模型定型執行超參數微調。
如需使用 HyperDriveStep 的範例,請參閱筆記本 https://aka.ms/pl-hyperdrive。
建立 Azure ML Pipeline 步驟,以針對 Machine Learning 模型定型執行超參數微調。
建構函式
HyperDriveStep(name, hyperdrive_config, estimator_entry_script_arguments=None, inputs=None, outputs=None, metrics_output=None, allow_reuse=True, version=None)
參數
| 名稱 | Description |
|---|---|
|
name
必要
|
[必要]步驟的名稱。 |
|
hyperdrive_config
必要
|
[必要]定義 HyperDrive 執行的組態的 HyperDriveConfig。 |
|
estimator_entry_script_arguments
|
估算器專案文本的命令行自變數清單。 如果估算器的專案腳本不接受命令行自變數,請將此參數值設定為空白清單。 預設值: None
|
|
inputs
|
list[Union[InputPortBinding, PipelineOutputAbstractDataset, DataReference, PortDataReference, PipelineData, DatasetConsumptionConfig]]
輸入埠系結的清單。 預設值: None
|
|
outputs
|
輸出埠系結的清單 預設值: None
|
|
metrics_output
|
選擇性值,指定要將 HyperDrive 執行計量儲存為 JSON 檔案的位置。 預設值: None
|
|
allow_reuse
|
指出當使用相同的設定重新執行時,步驟是否應該重複使用先前的結果。 默認會啟用重複使用。 如果步驟內容(腳本/相依性)以及輸入和參數保持不變,則會重複使用此步驟上一次執行的輸出。 重複使用步驟時,而不是提交作業來計算,先前執行的結果會立即提供給任何後續步驟使用。 如果您使用 Azure Machine Learning 數據集做為輸入,則重複使用取決於資料集的定義是否已變更,而不是基礎數據是否已變更。 預設值: True
|
|
version
|
選擇性版本標記,表示模組功能變更。 預設值: None
|
|
name
必要
|
[必要]步驟的名稱。 |
|
hyperdrive_config
必要
|
[必要]定義 HyperDrive 執行的組態的 HyperDriveConfig。 |
|
estimator_entry_script_arguments
必要
|
估算器專案文本的命令行自變數清單。 如果估算器的專案腳本不接受命令行自變數,請將此參數值設定為空白清單。 |
|
inputs
必要
|
list[Union[InputPortBinding, PipelineOutputAbstractDataset, DataReference, PortDataReference, PipelineData, DatasetConsumptionConfig]]
輸入埠系結的清單。 |
|
outputs
必要
|
輸出埠系結的清單。 |
|
metrics_output
必要
|
選擇性值,指定要將 HyperDrive 執行計量儲存為 JSON 檔案的位置。 |
|
allow_reuse
必要
|
指出當使用相同的設定重新執行時,步驟是否應該重複使用先前的結果。 默認會啟用重複使用。 如果步驟內容(腳本/相依性)以及輸入和參數保持不變,則會重複使用此步驟上一次執行的輸出。 重複使用步驟時,而不是提交作業來計算,先前執行的結果會立即提供給任何後續步驟使用。 如果您使用 Azure Machine Learning 數據集做為輸入,則重複使用取決於資料集的定義是否已變更,而不是基礎數據是否已變更。 |
|
version
必要
|
版本 |
備註
請注意,在具現化 HyperDriveStep 時,必須使用 參數來指定估算器物件中所使用專案腳本的自變數(例如 TensorFlow 物件) 作為清單estimator_entry_script_arguments。 估算器參數 script_params 接受字典。 不過, estimator_entry_script_argument 參數預期自變數為清單。
HyperDriveStep 初始化牽涉到使用 DataReference 參數指定物件清單inputs。 在 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])
方法
| create_node |
從 HyperDrive 步驟建立節點,並將 新增至指定的圖形。 此方法不適合直接使用。 使用此步驟具現化管線時,Azure ML 會自動透過此方法傳遞所需的參數,以便將步驟新增至代表工作流程的管線圖形。 |
create_node
從 HyperDrive 步驟建立節點,並將 新增至指定的圖形。
此方法不適合直接使用。 使用此步驟具現化管線時,Azure ML 會自動透過此方法傳遞所需的參數,以便將步驟新增至代表工作流程的管線圖形。
create_node(graph, default_datastore, context)
參數
| 名稱 | Description |
|---|---|
|
graph
必要
|
要加入節點的圖形物件。 |
|
default_datastore
必要
|
預設數據存放區。 |
|
context
必要
|
<xref:azureml.pipeline.core._GraphContext>
圖形內容。 |
傳回
| 類型 | Description |
|---|---|
|
建立的節點。 |