HyperDriveStep 类

创建一个 Azure ML Pipeline 步骤,用于运行用于机器学习模型训练的超参数优化。

有关使用 HyperDriveStep 的示例,请参阅笔记本 https://aka.ms/pl-hyperdrive

创建 Azure ML Pipeline 步骤以运行用于机器学习模型训练的超参数优化。

构造函数

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 运行的配置。

estimator_entry_script_arguments

估算器条目脚本的命令行参数列表。 如果估算器的条目脚本不接受命令行参数,请将此参数值设置为空列表。

默认值: None
inputs

输入端口绑定的列表。

默认值: None
outputs

输出端口绑定的列表

默认值: None
metrics_output

指定将 HyperDrive 运行指标存储为 JSON 文件的位置的可选值。

默认值: None
allow_reuse

指示使用相同设置重新运行时,该步骤是否应重复使用以前的结果。 默认情况下启用重用。 如果步骤内容(脚本/依赖项)以及输入和参数保持不变,则重复使用此步骤上一次运行的输出。 重用步骤时,将立即向任何后续步骤提供上一次运行的结果,而不是将作业提交到计算。 如果使用 Azure 机器学习数据集作为输入,则重复使用取决于数据集的定义是否已更改,而不是由基础数据是否已更改决定。

默认值: True
version
str

用于表示模块功能更改的可选版本标记。

默认值: None
name
必需
str

[必需]步骤的名称。

hyperdrive_config
必需

[必需]一个 HyperDriveConfig,用于定义 HyperDrive 运行的配置。

estimator_entry_script_arguments
必需

估算器条目脚本的命令行参数列表。 如果估算器的条目脚本不接受命令行参数,请将此参数值设置为空列表。

inputs
必需

输入端口绑定的列表。

outputs
必需

输出端口绑定的列表。

metrics_output
必需

一个可选值,该值指定要将 HyperDrive 运行指标存储为 JSON 文件的位置。

allow_reuse
必需

指示使用相同设置重新运行时,该步骤是否应重复使用以前的结果。 默认情况下启用重用。 如果步骤内容(脚本/依赖项)以及输入和参数保持不变,则重复使用此步骤上一次运行的输出。 重用步骤时,将立即向任何后续步骤提供上一次运行的结果,而不是将作业提交到计算。 如果使用 Azure 机器学习数据集作为输入,则重复使用取决于数据集的定义是否已更改,而不是由基础数据是否已更改决定。

version
必需
str

版本

注解

请注意,实例化 HyperDriveStep 时,必须使用参数将估算器对象(例如TensorFlow对象)中使用的条目脚本的参数指定为列表estimator_entry_script_arguments。 估算器参数 script_params 接受字典。 但是, estimator_entry_script_argument 参数需要参数作为列表。

HyperDriveStep 初始化涉及使用参数指定对象DataReference列表inputs。 在 Azure ML Pipelines 中,管道步骤可以将另一步骤的输出或 DataReference 对象作为输入。 因此,创建 HyperDriveStep 时, inputs 必须显式设置和 outputs 参数,这将替代 inputs 估算器对象中指定的参数。

使用 HyperDriveStep 的最佳做法是对脚本和与步骤关联的任何依赖文件使用单独的文件夹,并将该文件夹指定为估算器对象的 source_directory文件夹。 例如,请参阅 source_directory 类的参数 TensorFlow 。 这样做有两个好处。 首先,它有助于减小为步骤创建的快照的大小,因为仅快照了步骤所需的快照。 其次,如果对触发快照重新上传的更改 source_directory ,则可以重复使用上一次运行中的步骤输出。

以下示例演示如何在 Azure 机器学习管道中使用 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>

图形上下文。

返回

类型 说明

创建的节点。