HyperDriveStep 类
创建 Azure ML 管道步骤以运行机器学习模型训练的超参数优化。
有关使用 HyperDriveStep 的示例,请参阅笔记本 https://aka.ms/pl-hyperdrive。
创建 Azure ML 管道步骤,以便为机器学习模型训练运行超参数优化。
- 继承
-
HyperDriveStep
构造函数
HyperDriveStep(name, hyperdrive_config, estimator_entry_script_arguments=None, inputs=None, outputs=None, metrics_output=None, allow_reuse=True, version=None)
参数
名称 | 说明 |
---|---|
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 机器学习数据集作为输入,则重用取决于数据集的定义是否已更改,而不是基础数据是否已更改。 默认值: 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 机器学习数据集作为输入,则重用取决于数据集的定义是否已更改,而不是基础数据是否已更改。 |
version
必需
|
版本 |
注解
请注意,在估算器对象中使用的条目脚本的参数(例如,在实例化 HyperDriveStep 时,必须使用 estimator_entry_script_arguments
参数将 TensorFlow 对象指定为列表)。 估算器参数 script_params
接受字典。 然而,estimator_entry_script_argument
参数需要参数作为列表。
HyperDriveStep 初始化涉及到使用 inputs
参数指定 DataReference 对象的列表。 在 Azure ML 管道中,管道步骤可以使用另一个步骤的输出或 DataReference 对象作为输入。 因此,在创建 HyperDriveStep 时,必须显式设置 inputs
和 outputs
参数,这会重写估算器对象中指定的 inputs
参数。
使用 HyperDriveStep 的最佳做法是将单独的文件夹用于脚本以及与该步骤关联的任何依赖文件,并将该文件夹指定为估算器对象的 source_directory
。 有关示例,请参阅 TensorFlow 类的 source_directory
参数。 这样做有两个优点。 首先,它有助于减少为该步骤创建的快照的大小,因为只有该步骤需要进行快照操作。 其次,如果 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])
方法
create_node |
从 HyperDrive 步骤创建节点并将其添加到给定的图。 此方法不能直接使用。 通过此步骤实例化管道时,Azure 机器学习会自动通过此方法传递所需的参数,以便可以将步骤添加到表示工作流的管道图形中。 |
create_node
从 HyperDrive 步骤创建节点并将其添加到给定的图。
此方法不能直接使用。 通过此步骤实例化管道时,Azure 机器学习会自动通过此方法传递所需的参数,以便可以将步骤添加到表示工作流的管道图形中。
create_node(graph, default_datastore, context)
参数
名称 | 说明 |
---|---|
graph
必需
|
要添加节点的图形对象。 |
default_datastore
必需
|
默认数据存储。 |
context
必需
|
<xref:azureml.pipeline.core._GraphContext>
图形上下文。 |
返回
类型 | 说明 |
---|---|
创建的节点。 |