Module 类
表示 Azure 机器学习管道中使用的计算单元。
模块是将在计算目标和接口说明上运行的文件集合。 文件集合可以是脚本、二进制文件或计算目标上执行所需的任何其他文件。 模块接口描述输入、输出和参数定义。 它不会将它们绑定到特定值或数据。 模块具有与之关联的快照,用于捕获为模块定义的文件的集合。
初始化模块。
构造函数
Module(workspace, module_id, name, description, status, default_version, module_version_list, _module_provider=None, _module_version_provider=None)
参数
名称 | 说明 |
---|---|
workspace
必需
|
此模块所属的工作区对象。 |
module_id
必需
|
模块的 ID。 |
name
必需
|
模块的名称。 |
description
必需
|
模块的说明。 |
status
必需
|
模块的新状态:“Active”、“已弃用”或“Disabled”。 |
default_version
必需
|
模块的默认版本。 |
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
必需
|
模块的 ID。 |
name
必需
|
模块的名称。 |
description
必需
|
模块的说明。 |
status
必需
|
模块的新状态:“Active”、“已弃用”或“Disabled”。 |
default_version
必需
|
模块的默认版本。 |
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")
使用 在不同的步骤 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}
然后,可以在创建 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])
提交时要使用的模块版本的解决方案,并遵循以下过程:
- 删除所有禁用的版本
- 如果指定了特定版本,请使用该版本,否则
- 如果对模块定义了默认版本,请使用该版本,否则
- 如果所有版本都遵循不带字母的语义版本控制,则采用最高值,否则
- 获取上次更新的模块版本
请注意,由于节点的输入和输出映射到模块的输入和输出是在创建管道时定义的,如果提交时解析的版本具有与管道创建时解析的接口不同的接口,则管道提交将失败。
基础模块可以使用新版本进行更新,同时保持默认版本相同。
模块在工作区中唯一命名。
方法
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
必需
|
模块的名称。 |
description
必需
|
模块的说明。 |
_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
|
模块的 ID。 默认值: None
|
name
|
模块的名称。 默认值: None
|
_workflow_provider
|
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
(仅限内部使用。)工作流提供程序。 默认值: None
|
返回
类型 | 说明 |
---|---|
Module 对象 |
get_default
get_default_version
get_versions
获取模块的所有版本。
static get_versions(workspace, name, _workflow_provider=None)
参数
名称 | 说明 |
---|---|
workspace
必需
|
模块创建的工作区。 |
name
必需
|
模块的名称。 |
_workflow_provider
|
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
(仅限内部使用。)工作流提供程序。 默认值: None
|
返回
类型 | 说明 |
---|---|
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
必需
|
模块的名称。 |
description
必需
|
模块的说明。 |
execution_type
必需
|
模块的执行类型。 |
input_bindings
必需
|
模块输入绑定。 |
output_bindings
必需
|
模块输出绑定。 |
param_defs
|
模块参数定义。 默认值: None
|
create_sequencing_ports
|
指示是否将为模块创建序列化端口。 默认值: True
|
allow_reuse
|
指示他模块是否可供重复使用。 默认值: True
|
version
|
模块的版本。 默认值: None
|
module_type
|
模块类型。 默认值: None
|
step_type
|
与此模块关联的步骤类型,例如“PythonScriptStep”、“HyperDriveStep”等。 默认值: None
|
arguments
|
调用此模块时要使用的批注参数列表 默认值: None
|
runconfig
|
将用于python_script_step的 Runconfig 默认值: None
|
cloud_settings
|
将用于云的设置 默认值: None
|
返回
类型 | 说明 |
---|---|
Module def 对象。 |
例外
类型 | 说明 |
---|---|
module_version_list
process_source_directory
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
必需
|
模块的说明。 |
execution_type
必需
|
模块的执行类型。
可接受的值为 |
inputs
必需
|
模块输入。 |
outputs
必需
|
模块输出。 |
param_defs
|
Module 参数定义。 默认值: None
|
create_sequencing_ports
|
指示是否将为模块创建序列化端口。 默认值: True
|
version
|
模块的版本。 默认值: None
|
is_default
|
指示已发布的版本是否为默认版本。 默认值: False
|
content_path
|
目录 默认值: None
|
hash_paths
|
检查步骤内容更改时哈希的路径列表。 如果未检测到任何更改,管道将重复使用上一次运行中的步骤内容。 默认情况下,这些内容 默认值: None
|
category
|
模块版本的类别 默认值: 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
必需
|
ADLA 脚本的名称,相对于 |
description
必需
|
模块版本的说明。 |
inputs
必需
|
模块输入绑定。 |
outputs
必需
|
模块输出绑定。 |
params
|
ModuleVersion 参数,作为名称default_value对。 默认值: None
|
create_sequencing_ports
|
指示是否将为模块创建序列化端口。 默认值: True
|
degree_of_parallelism
|
用于此作业的并行度。 默认值: None
|
priority
|
用于当前作业的优先级值。 默认值: None
|
runtime_version
|
Azure Data Lake Analytics (ADLA) 引擎的运行时版本。 默认值: None
|
compute_target
|
要用于此作业的 ADLA 计算。 默认值: None
|
version
|
模块的版本。 默认值: None
|
is_default
|
指示已发布的版本是否为默认版本。 默认值: False
|
source_directory
|
目录 默认值: None
|
hash_paths
|
hash_paths 默认值: None
|
category
|
模块版本的类别 默认值: 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
必需
|
模块版本的说明。 |
compute_target
必需
|
BatchCompute 计算目标。 |
inputs
必需
|
模块输入绑定。 |
outputs
必需
|
模块输出绑定。 |
params
|
ModuleVersion 参数,作为名称default_value对。 默认值: None
|
create_sequencing_ports
|
指示是否将为模块创建序列化端口。 默认值: True
|
version
|
模块的版本。 默认值: None
|
is_default
|
指示已发布的版本是否为默认版本。 默认值: False
|
create_pool
|
指示是否在运行作业之前创建池。 默认值: False
|
pool_id
|
(必需)要在其中运行作业的池的 ID。 默认值: None
|
delete_batch_job_after_finish
|
指示在作业完成后是否从 Batch 帐户中删除作业。 默认值: 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
|
调用模块时要使用的参数。 参数可以是字符串、输入引用(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
必需
|
相对于 |
description
必需
|
模块版本的说明。 |
inputs
必需
|
模块输入绑定。 |
outputs
必需
|
模块输出绑定。 |
params
|
ModuleVersion 参数,作为名称default_value对。 默认值: None
|
create_sequencing_ports
|
指示是否将为模块创建序列化端口。 默认值: True
|
version
|
模块的版本。 默认值: None
|
is_default
|
指示已发布的版本是否为默认版本。 默认值: False
|
source_directory
|
目录 默认值: None
|
hash_paths
|
检查步骤内容更改时哈希的路径列表。 如果未检测到任何更改,管道将重复使用上一次运行中的步骤内容。 默认情况下,哈希处理的内容 默认值: None
|
category
|
模块版本的类别 默认值: None
|
arguments
|
调用模块时要使用的参数。 参数可以是字符串、输入引用(InputPortDef)、输出引用(OutputPortDef)和管道参数(PipelineParameter)。 默认值: None
|
runconfig
|
可选的 RunConfiguration。 RunConfiguration 可用于指定运行的其他要求,例如 conda 依赖项和 Docker 映像。 默认值: None
|
返回
类型 | 说明 |
---|---|
resolve
解析并返回正确的 ModuleVersion。
resolve(version=None)
参数
名称 | 说明 |
---|---|
version
|
默认值: None
|
返回
类型 | 说明 |
---|---|
要使用的模块版本。 |