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
Workspace
必需

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

module_id
str
必需

模块的 ID。

name
str
必需

模块的名称。

description
str
必需

模块的说明。

status
str
必需

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

default_version
str
必需

模块的默认版本。

module_version_list
list
必需

ModuleVersionDescriptor 对象的列表。

_module_provider
<xref:azureml.pipeline.core._aeva_provider._AzureMLModuleProvider>
默认值: None

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

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

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

workspace
Workspace
必需

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

module_id
str
必需

模块的 ID。

name
str
必需

模块的名称。

description
str
必需

模块的说明。

status
str
必需

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

default_version
str
必需

模块的默认版本。

module_version_list
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
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
Workspace
必需

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

module_id
str
默认值: None

模块的 ID。

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
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
list
必需

模块输入绑定。

output_bindings
list
必需

模块输出绑定。

param_defs
list
默认值: None

模块参数定义。

create_sequencing_ports
bool
默认值: True

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

allow_reuse
bool
默认值: True

指示模块是否可重用。

version
str
默认值: None

模块的版本。

module_type
str
默认值: None

模块类型。

step_type
str
默认值: None

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

arguments
list
默认值: None

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

runconfig
str
默认值: None

将用于 python_script_step 的 runconfig

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
list
必需

模块输入。

outputs
list
必需

模块输出。

param_defs
list
默认值: None

模块参数定义。

create_sequencing_ports
bool
默认值: True

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

version
str
默认值: None

模块的版本。

is_default
bool
默认值: False

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

content_path
str
默认值: None

目录

hash_paths
list
默认值: None

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

category
str
默认值: None

模块版本的类别

arguments
list
默认值: None

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

runconfig
RunConfiguration
默认值: None

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

返回类型

例外

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
list
必需

模块输入绑定。

outputs
list
必需

模块输出绑定。

params
dict
默认值: None

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

create_sequencing_ports
bool
默认值: True

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

degree_of_parallelism
int
默认值: None

用于此作业的并行度。

priority
int
默认值: None

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

runtime_version
str
默认值: None

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

compute_target
AdlaCompute, str
默认值: None

用于此作业的 ADLA 计算。

version
str
默认值: None

模块的版本。

is_default
bool
默认值: False

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

source_directory
str
默认值: None

目录

hash_paths
list
默认值: None

hash_paths

category
str
默认值: None

模块版本的类别

arguments
list
默认值: None

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

返回类型

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
BatchComputestr
必需

BatchCompute 计算目标。

inputs
list
必需

模块输入绑定。

outputs
list
必需

模块输出绑定。

params
dict
默认值: None

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

create_sequencing_ports
bool
默认值: True

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

version
str
默认值: None

模块的版本。

is_default
bool
默认值: False

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

create_pool
bool
默认值: False

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

pool_id
str
默认值: None

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

delete_batch_job_after_finish
bool
默认值: False

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

delete_batch_pool_after_finish
bool
默认值: False

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

is_positive_exit_code_failure
bool
默认值: True

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

vm_image_urn
str
默认值: urn:MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter

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

run_task_as_admin
bool
默认值: False

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

target_compute_nodes
int
默认值: 1

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

vm_size
str
默认值: standard_d1_v2

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

executable
str
默认值: None

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

source_directory
str
默认值: None

源目录。

category
str
默认值: None

模块版本的类别

arguments
list
默认值: None

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

返回类型

例外

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
list
必需

模块输入绑定。

outputs
list
必需

模块输出绑定。

params
dict
默认值: None

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

create_sequencing_ports
bool
默认值: True

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

version
str
默认值: None

模块的版本。

is_default
bool
默认值: False

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

source_directory
str
默认值: None

目录

hash_paths
list
默认值: None

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

category
str
默认值: None

模块版本的类别

arguments
list
默认值: None

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

runconfig
RunConfiguration
默认值: None

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

返回类型

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。

返回

ID。

返回类型

str

name

获取模块的名称。

返回

名称。

返回类型

str

status

获取模块的状态。

返回

状态。

返回类型

str