Module 类
表示 Azure 机器学习管道中使用的计算单元。
模块是在计算目标上运行的文件集合和接口的说明。 文件集合可以是脚本、二进制文件或任何其他需要在计算目标上执行的文件。 模块接口描述输入、输出和参数定义。 模块不会将模块接口绑定到特定的值或数据。 一个模块有一个关联的快照,该快照捕获针对该模块定义的文件集合。
初始化模块。
- 继承
-
builtins.objectModule
构造函数
Module(workspace, module_id, name, description, status, default_version, module_version_list, _module_provider=None, _module_version_provider=None)
参数
- _module_provider
- <xref:azureml.pipeline.core._aeva_provider._AzureMLModuleProvider>
(仅限内部使用。) 模块提供程序。
- _module_version_provider
- <xref:azureml.pipeline.core._aeva_provider._AevaMlModuleVersionProvider>
(仅限内部使用。) ModuleVersion 提供程序。
- _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")
在不同的步骤中定义管道时,可以通过 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 |
将模块设置为“已禁用”。 |
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)
参数
- _workflow_provider
- <xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
(仅限内部使用。) 工作流提供程序。
返回
模块对象
返回类型
deprecate
将模块设置为“已弃用”。
deprecate()
disable
将模块设置为“已禁用”。
disable()
enable
将模块设置为“活动”。
enable()
get
按名称或 ID 获取模块;如果未提供名称或 ID,则引发异常。
static get(workspace, module_id=None, name=None, _workflow_provider=None)
参数
- _workflow_provider
- <xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
(仅限内部使用。) 工作流提供程序。
返回
模块对象
返回类型
get_default
get_default_version
get_versions
获取模块的所有版本。
static get_versions(workspace, name, _workflow_provider=None)
参数
- _workflow_provider
- <xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
(仅限内部使用。) 工作流提供程序。
返回
返回类型
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)
参数
返回
模块定义对象。
返回类型
例外
module_version_list
process_source_directory
处理步骤的源目录,并检查脚本是否存在。
static process_source_directory(name, source_directory, script_name)
参数
返回
源目录和哈希路径。
返回类型
例外
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)
参数
- hash_paths
- list
检查对步骤内容所做的更改时要哈希处理的路径列表。 如果未检测到更改,则管道将重用前一运行中的步骤内容。 默认情况下,将哈希处理 source_directory
的内容(.amlignore 或 .gitignore 中列出的文件除外)。
已弃用:不再需要。
- arguments
- list
调用模块时使用的参数。 参数可以是字符串、输入引用 (InputPortDef)、输出引用 (OutputPortDef) 和管道参数 (PipelineParameter)。
- runconfig
- RunConfiguration
可选的 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)
参数
- arguments
- list
调用模块时使用的参数。 参数可以是字符串、输入引用 (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)
参数
- vm_image_urn
- str
如果 create_pool
为 True 且 VM 使用 VirtualMachineConfiguration,则此参数指示要使用的 VM 映像。 值格式:urn:publisher:offer:sku
。
示例:urn:MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter
。
- arguments
- list
调用模块时使用的参数。 参数可以是字符串、输入引用 (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)
参数
- hash_paths
- list
检查对步骤内容所做的更改时要哈希处理的路径列表。 如果未检测到更改,则管道将重用前一运行中的步骤内容。 默认情况下,将哈希处理 source_directory
的内容(.amlignore 或 .gitignore 中列出的文件除外)。
已弃用:不再需要。
- arguments
- list
调用模块时使用的参数。 参数可以是字符串、输入引用 (InputPortDef)、输出引用 (OutputPortDef) 和管道参数 (PipelineParameter)。
- runconfig
- RunConfiguration
可选的 RunConfiguration。 RunConfiguration 可用于指定其他运行要求,例如 conda 依赖项和 Docker 映像。
返回类型
resolve
set_default_version
设置模块的默认 ModuleVersion。
set_default_version(version_id)
参数
- version_id
返回
默认版本。
返回类型
例外
set_description
set_name
属性
default_version
description
id
name
status
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈