Module 类

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

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

初始化模块。

构造函数

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

模块的新状态:“Active”、“已弃用”或“Disabled”。

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

模块的新状态:“Active”、“已弃用”或“Disabled”。

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 该方法创建的,并且具有两个输入和输出。 create 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

将模块设置为“Disabled”。

enable

将模块设置为“Active”。

get

按名称或 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 批处理的 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

返回

类型 说明

Module 对象

deprecate

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

deprecate()

disable

将模块设置为“Disabled”。

disable()

enable

将模块设置为“Active”。

enable()

get

按名称或 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

返回

类型 说明

Module 对象

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 def 对象。

例外

类型 说明

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

Module 参数定义。

默认值: 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 参数,作为名称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 批处理的 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 参数,作为名称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

相对于 source_directory. 的 Python 脚本的名称。

description
必需
str

模块版本的说明。

inputs
必需

模块输入绑定。

outputs
必需

模块输出绑定。

params

ModuleVersion 参数,作为名称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

状态。