Module 类

表示 Azure 机器学习管道中使用的计算单元。

模块是在计算目标上运行的文件集合和接口的说明。 文件集合可以是脚本、二进制文件或任何其他需要在计算目标上执行的文件。 模块接口描述输入、输出和参数定义。 模块不会将模块接口绑定到特定的值或数据。 一个模块有一个关联的快照,该快照捕获针对该模块定义的文件集合。

初始化模块。

继承
builtins.object
Module

构造函数

Module(workspace, module_id, name, description, status, default_version, module_version_list, _module_provider=None, _module_version_provider=None)

参数

名称 说明
workspace
必需

此模块所属的工作区对象。

module_id
必需
str

模块的 ID。

name
必需
str

模块的名称。

description
必需
str

模块的说明。

status
必需
str

模块的新状态:“活动”、“已弃用”或“已禁用”。

default_version
必需
str

模块的默认版本。

module_version_list
必需

ModuleVersionDescriptor 对象的列表。

_module_provider
<xref:azureml.pipeline.core._aeva_provider._AzureMLModuleProvider>

(仅限内部使用。) 模块提供程序。

默认值: None
_module_version_provider
<xref:azureml.pipeline.core._aeva_provider._AevaMlModuleVersionProvider>

(仅限内部使用。) ModuleVersion 提供程序。

默认值: None
workspace
必需

此模块所属的工作区对象。

module_id
必需
str

模块的 ID。

name
必需
str

模块的名称。

description
必需
str

模块的说明。

status
必需
str

模块的新状态:“活动”、“已弃用”或“已禁用”。

default_version
必需
str

模块的默认版本。

module_version_list
必需

ModuleVersionDescriptor 对象的列表。

_module_provider
必需
<xref:<xref:_AevaMlModuleProvider object>>

模块提供程序。

_module_version_provider
必需
<xref:azureml.pipeline.core._aeva_provider._AevaMlModuleVersionProvider>

ModuleVersion 提供程序。

注解

模块充当其版本的容器。 在以下示例中,ModuleVersion 是从 publish_python_script 方法创建的,具有两个输入和两个输出。 创建 ModuleVersion 是默认版本(is_default 设置为 True)。


   out_sum = OutputPortDef(name="out_sum", default_datastore_name=datastore.name, default_datastore_mode="mount",
                           label="Sum of two numbers")
   out_prod = OutputPortDef(name="out_prod", default_datastore_name=datastore.name, default_datastore_mode="mount",
                            label="Product of two numbers")
   entry_version = module.publish_python_script("calculate.py", "initial",
                                                inputs=[], outputs=[out_sum, out_prod], params = {"initialNum":12},
                                                version="1", source_directory="./calc")

完整示例可从 https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-how-to-use-modulestep.ipynb 获取

在不同的步骤中定义管道时,可以通过 ModuleStep 使用此模块。

以下示例演示如何通过 PipelineData 将管道中使用的数据连接到 ModuleVersion 的输入和输出:


   middle_step_input_wiring = {"in1":first_sum, "in2":first_prod}
   middle_sum = PipelineData("middle_sum", datastore=datastore, output_mode="mount",is_directory=False)
   middle_prod = PipelineData("middle_prod", datastore=datastore, output_mode="mount",is_directory=False)
   middle_step_output_wiring = {"out_sum":middle_sum, "out_prod":middle_prod}

完整示例可从 https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-how-to-use-modulestep.ipynb 获取

然后,可以在创建 ModuleStep 时使用映射:


   middle_step = ModuleStep(module=module,
                            inputs_map= middle_step_input_wiring,
                            outputs_map= middle_step_output_wiring,
                            runconfig=RunConfiguration(), compute_target=aml_compute,
                            arguments = ["--file_num1", first_sum, "--file_num2", first_prod,
                                         "--output_sum", middle_sum, "--output_product", middle_prod])

完整示例可从 https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-how-to-use-modulestep.ipynb 获取

有关要使用哪个模块版本的解析将在提交时发生,并遵循以下过程:

  • 删除所有已禁用的版本
  • 如果指明了特定版本,则使用该版本,否则
  • 如果为模块定义了默认版本,则使用该版本,否则
  • 如果所有版本都遵循不使用字母的语义版本控制,则取最大值,否则
  • 使用上次更新的模块版本

请注意,由于节点输入和输出到模块输入和输出的映射是在创建管道时定义的,因此,如果在提交时所解析版本的接口与创建管道时所解析版本的接口不同,则管道提交将会失败。

可以使用新版本更新基础模块,同时将默认版本保持不变。

模块在工作区中唯一命名。

方法

create

创建模块。

deprecate

将模块设置为“已弃用”。

disable

将模块设置为“已禁用”。

enable

将模块设置为“活动”。

get

按名称或 ID 获取模块;如果未提供名称或 ID,则引发异常。

get_default

获取默认模块版本。

get_default_version

获取模块的默认版本。

get_versions

获取模块的所有版本。

module_def_builder

创建描述步骤的模块定义对象。

module_version_list

获取模块版本列表。

process_source_directory

处理步骤的源目录,并检查脚本是否存在。

publish

创建一个 ModuleVersion 并将其添加到当前模块。

publish_adla_script

创建一个基于 Azure Data Lake Analytics (ADLA) 的 ModuleVersion 并将其添加到当前模块。

publish_azure_batch

创建一个使用 Azure Batch 的 ModuleVersion 并将其添加到当前模块。

publish_python_script

创建一个基于 Python 脚本的 ModuleVersion 并将其添加到当前模块。

resolve

解析并返回正确的 ModuleVersion。

set_default_version

设置模块的默认 ModuleVersion。

set_description

设置模块的说明。

set_name

设置模块的名称。

create

创建模块。

static create(workspace, name, description, _workflow_provider=None)

参数

名称 说明
workspace
必需

要在其中创建模块的工作区。

name
必需
str

模块的名称。

description
必需
str

模块的说明。

_workflow_provider
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>

(仅限内部使用。) 工作流提供程序。

默认值: None

返回

类型 说明

模块对象

deprecate

将模块设置为“已弃用”。

deprecate()

disable

将模块设置为“已禁用”。

disable()

enable

将模块设置为“活动”。

enable()

get

按名称或 ID 获取模块;如果未提供名称或 ID,则引发异常。

static get(workspace, module_id=None, name=None, _workflow_provider=None)

参数

名称 说明
workspace
必需

要在其中创建模块的工作区。

module_id
str

模块的 ID。

默认值: None
name
str

模块的名称。

默认值: None
_workflow_provider
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>

(仅限内部使用。) 工作流提供程序。

默认值: None

返回

类型 说明

模块对象

get_default

获取默认模块版本。

get_default()

返回

类型 说明

默认模块版本。

get_default_version

获取模块的默认版本。

get_default_version()

返回

类型 说明
str

模块的默认版本。

get_versions

获取模块的所有版本。

static get_versions(workspace, name, _workflow_provider=None)

参数

名称 说明
workspace
必需

在其中创建了模块的工作区。

name
必需
str

模块的名称。

_workflow_provider
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>

(仅限内部使用。) 工作流提供程序。

默认值: None

返回

类型 说明

ModuleVersionDescriptor 的列表

module_def_builder

创建描述步骤的模块定义对象。

static module_def_builder(name, description, execution_type, input_bindings, output_bindings, param_defs=None, create_sequencing_ports=True, allow_reuse=True, version=None, module_type=None, step_type=None, arguments=None, runconfig=None, cloud_settings=None)

参数

名称 说明
name
必需
str

模块的名称。

description
必需
str

模块的说明。

execution_type
必需
str

模块的执行类型。

input_bindings
必需

模块输入绑定。

output_bindings
必需

模块输出绑定。

param_defs

模块参数定义。

默认值: None
create_sequencing_ports

指示是否为模块创建有序端口。

默认值: True
allow_reuse

指示模块是否可重用。

默认值: True
version
str

模块的版本。

默认值: None
module_type
str

模块类型。

默认值: None
step_type
str

与此模块关联的步骤类型,例如“PythonScriptStep”、“HyperDriveStep”等。

默认值: None
arguments

调用此模块时使用的批注参数列表

默认值: None
runconfig
str

将用于 python_script_step 的 runconfig

默认值: None
cloud_settings
str

用于云的设置

默认值: None

返回

类型 说明

模块定义对象。

例外

类型 说明

module_version_list

获取模块版本列表。

module_version_list()

返回

类型 说明

ModuleVersionDescriptor 的列表

process_source_directory

处理步骤的源目录,并检查脚本是否存在。

static process_source_directory(name, source_directory, script_name)

参数

名称 说明
name
必需
str

步骤的名称。

source_directory
必需
str

步骤的源目录。

script_name
必需
str

步骤的脚本名称。

返回

类型 说明

源目录和哈希路径。

例外

类型 说明

publish

创建一个 ModuleVersion 并将其添加到当前模块。

publish(description, execution_type, inputs, outputs, param_defs=None, create_sequencing_ports=True, version=None, is_default=False, content_path=None, hash_paths=None, category=None, arguments=None, runconfig=None)

参数

名称 说明
description
必需
str

模块的说明。

execution_type
必需
str

模块的执行类型。 可接受的值为 esCloudadlcloudAzureBatchCloud

inputs
必需

模块输入。

outputs
必需

模块输出。

param_defs

模块参数定义。

默认值: None
create_sequencing_ports

指示是否为模块创建有序端口。

默认值: True
version
str

模块的版本。

默认值: None
is_default

指示发布的版本是否为默认版本。

默认值: False
content_path
str

目录

默认值: None
hash_paths

检查对步骤内容所做的更改时要哈希处理的路径列表。 如果未检测到更改,则管道将重用前一运行中的步骤内容。 默认情况下,将哈希处理 source_directory 的内容(.amlignore 或 .gitignore 中列出的文件除外)。 已弃用:不再需要。

默认值: None
category
str

模块版本的类别

默认值: None
arguments

调用模块时使用的参数。 参数可以是字符串、输入引用 (InputPortDef)、输出引用 (OutputPortDef) 和管道参数 (PipelineParameter)。

默认值: None
runconfig

可选的 RunConfiguration。 RunConfiguration 可用于指定其他运行要求,例如 conda 依赖项和 Docker 映像。

默认值: None

返回

类型 说明

例外

类型 说明

publish_adla_script

创建一个基于 Azure Data Lake Analytics (ADLA) 的 ModuleVersion 并将其添加到当前模块。

publish_adla_script(script_name, description, inputs, outputs, params=None, create_sequencing_ports=True, degree_of_parallelism=None, priority=None, runtime_version=None, compute_target=None, version=None, is_default=False, source_directory=None, hash_paths=None, category=None, arguments=None)

参数

名称 说明
script_name
必需
str

ADLA 脚本的名称,相对于 source_directory

description
必需
str

模块版本的说明。

inputs
必需

模块输入绑定。

outputs
必需

模块输出绑定。

params

ModuleVersion 参数,采用“name-default_value”对格式。

默认值: None
create_sequencing_ports

指示是否为模块创建有序端口。

默认值: True
degree_of_parallelism
int

用于此作业的并行度。

默认值: None
priority
int

用于当前作业的优先级值。

默认值: None
runtime_version
str

Azure Data Lake Analytics (ADLA) 引擎的运行时版本。

默认值: None
compute_target

用于此作业的 ADLA 计算。

默认值: None
version
str

模块的版本。

默认值: None
is_default

指示发布的版本是否为默认版本。

默认值: False
source_directory
str

目录

默认值: None
hash_paths

hash_paths

默认值: None
category
str

模块版本的类别

默认值: None
arguments

调用模块时使用的参数。 参数可以是字符串、输入引用 (InputPortDef)、输出引用 (OutputPortDef) 和管道参数 (PipelineParameter)。

默认值: None

返回

类型 说明

publish_azure_batch

创建一个使用 Azure Batch 的 ModuleVersion 并将其添加到当前模块。

publish_azure_batch(description, compute_target, inputs, outputs, params=None, create_sequencing_ports=True, version=None, is_default=False, create_pool=False, pool_id=None, delete_batch_job_after_finish=False, delete_batch_pool_after_finish=False, is_positive_exit_code_failure=True, vm_image_urn='urn:MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter', run_task_as_admin=False, target_compute_nodes=1, vm_size='standard_d1_v2', executable=None, source_directory=None, category=None, arguments=None)

参数

名称 说明
description
必需
str

模块版本的说明。

compute_target
必需

BatchCompute 计算目标。

inputs
必需

模块输入绑定。

outputs
必需

模块输出绑定。

params

ModuleVersion 参数,采用“name-default_value”对格式。

默认值: None
create_sequencing_ports

指示是否为模块创建有序端口。

默认值: True
version
str

模块的版本。

默认值: None
is_default

指示发布的版本是否为默认版本。

默认值: False
create_pool

指示在运行作业之前是否创建池。

默认值: False
pool_id
str

(必需)要在其中运行作业的池的 ID。

默认值: None
delete_batch_job_after_finish

指示在完成作业之后是否从 Batch 帐户中删除该作业。

默认值: False
delete_batch_pool_after_finish

指示在完成作业之后是否删除池。

默认值: False
is_positive_exit_code_failure

指示在任务退出并返回正代码时作业是否失败。

默认值: True
vm_image_urn
str

如果 create_pool 为 True 且 VM 使用 VirtualMachineConfiguration,则此参数指示要使用的 VM 映像。 值格式:urn:publisher:offer:sku。 示例:urn:MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter

默认值: urn:MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter
run_task_as_admin

指示任务是否应该以管理员权限运行。

默认值: False
target_compute_nodes
int

如果 create_pool 为 True,则指示要将多少个计算节点添加到池。

默认值: 1
vm_size
str

如果 create_pool 为 True,则指示计算节点的虚拟机大小。

默认值: standard_d1_v2
executable
str

要作为作业的一部分执行的命令/可执行文件的名称。

默认值: None
source_directory
str

源目录。

默认值: None
category
str

模块版本的类别

默认值: None
arguments

调用模块时使用的参数。 参数可以是字符串、输入引用 (InputPortDef)、输出引用 (OutputPortDef) 和管道参数 (PipelineParameter)。

默认值: None

返回

类型 说明

例外

类型 说明

publish_python_script

创建一个基于 Python 脚本的 ModuleVersion 并将其添加到当前模块。

publish_python_script(script_name, description, inputs, outputs, params=None, create_sequencing_ports=True, version=None, is_default=False, source_directory=None, hash_paths=None, category=None, arguments=None, runconfig=None)

参数

名称 说明
script_name
必需
str

Python 脚本的名称,相对于 source_directory

description
必需
str

模块版本的说明。

inputs
必需

模块输入绑定。

outputs
必需

模块输出绑定。

params

ModuleVersion 参数,采用“name-default_value”对格式。

默认值: None
create_sequencing_ports

指示是否为模块创建有序端口。

默认值: True
version
str

模块的版本。

默认值: None
is_default

指示发布的版本是否为默认版本。

默认值: False
source_directory
str

目录

默认值: None
hash_paths

检查对步骤内容所做的更改时要哈希处理的路径列表。 如果未检测到更改,则管道将重用前一运行中的步骤内容。 默认情况下,将哈希处理 source_directory 的内容(.amlignore 或 .gitignore 中列出的文件除外)。 已弃用:不再需要。

默认值: None
category
str

模块版本的类别

默认值: None
arguments

调用模块时使用的参数。 参数可以是字符串、输入引用 (InputPortDef)、输出引用 (OutputPortDef) 和管道参数 (PipelineParameter)。

默认值: None
runconfig

可选的 RunConfiguration。 RunConfiguration 可用于指定其他运行要求,例如 conda 依赖项和 Docker 映像。

默认值: None

返回

类型 说明

resolve

解析并返回正确的 ModuleVersion。

resolve(version=None)

参数

名称 说明
version
默认值: None

返回

类型 说明

要使用的模块版本。

set_default_version

设置模块的默认 ModuleVersion。

set_default_version(version_id)

参数

名称 说明
version_id
必需

返回

类型 说明
str

默认版本。

例外

类型 说明

set_description

设置模块的说明。

set_description(description)

参数

名称 说明
description
必需
str

要设置的说明。

例外

类型 说明

set_name

设置模块的名称。

set_name(name)

参数

名称 说明
name
必需
str

要设置的名称。

例外

类型 说明

属性

default_version

获取模块的默认版本。

返回

类型 说明
str

默认版本字符串。

description

获取模块的说明。

返回

类型 说明
str

说明字符串。

id

获取模块的 ID。

返回

类型 说明
str

ID。

name

获取模块的名称。

返回

类型 说明
str

名称。

status

获取模块的状态。

返回

类型 说明
str

状态。