ComputeTarget 类

Azure 机器学习管理的所有计算目标的抽象父类。

“计算目标”是用来运行训练脚本或托管服务部署的指定计算资源/环境。 此位置可以是你的本地计算机,也可以是基于云的计算资源。 有关详细信息,请参阅什么是 Azure 机器学习中的计算目标?

类 ComputeTarget 构造函数。

检索与提供的工作区关联的 Compute 对象的云表示形式。 返回与检索的 Compute 对象的特定类型对应的子类的实例。

继承
ComputeTarget

构造函数

ComputeTarget(workspace, name)

参数

名称 说明
workspace
必需

包含要检索的 Compute 对象的工作区对象。

name
必需
str

要检索的 Compute 对象的名称。

workspace
必需

包含要检索的 Compute 对象的工作区对象。

name
必需
str

要检索的 Compute 对象的 的名称。

注解

使用 ComputeTarget 构造函数检索与提供的工作区关联的 Compute 对象的云表示形式。 构造函数会返回一个与检索到的特定类型的 Compute 对象对应的子类实例。 如果未找到 Compute 对象,则引发 ComputeTargetException

方法

attach

使用指定的名称和配置信息将 Compute 对象附加到工作区。

create

通过指定计算类型和相关配置来预配 Compute 对象。

此方法创建新的计算目标,而不是附加现有计算目标。

delete

从其关联的工作区删除 Compute 对象。

ComputeTarget 的子类实现此抽象方法。

deserialize

将 JSON 对象转换为 Compute 对象。

detach

从关联的工作区拆离 Compute 对象。

ComputeTarget 的子类实现此抽象方法。 不会删除基础云对象,只会删除其关联。

get_status

检索 Compute 对象的当前预配状态。

list

列出工作区内的所有 ComputeTarget 对象。

返回与特定计算类型相对应的实例化子对象的列表。 对象是 ComputeTarget 的子对象。

refresh_state

执行对象属性的就地更新。

根据相应云对象的当前状态更新属性。 主要用于手动轮询计算状态。

ComputeTarget 的子类实现此抽象方法。

serialize

将此 Compute 对象转换为 JSON 序列化字典。

wait_for_completion

等待当前预配操作在群集上完成。

如果在轮询 Compute 对象时出现问题,此方法将返回 ComputeTargetException

attach

使用指定的名称和配置信息将 Compute 对象附加到工作区。

static attach(workspace, name, attach_configuration)

参数

名称 说明
workspace
必需

要附加 Compute 对象的工作区对象。

name
必需
str

要与 Compute 对象关联的名称。

attach_configuration
必需

ComputeTargetAttachConfiguration 对象,用于确定要附加的 Compute 对象的类型及其配置方式。

返回

类型 说明

与附加的对象类型对应的 ComputeTarget 子级的实例。

例外

类型 说明

注解

要传递给 attach_configuration 参数的对象的类型是使用 ComputeTarget 的任何子类上的 attach_configuration 函数构建的 ComputeTargetAttachConfiguration 对象。

下面的示例演示如何使用 AdlaCompute 的 attach_configuration 方法将 ADLA 帐户附加到工作区。


   adla_compute_name = 'testadl' # Name to associate with new compute in workspace

   # ADLA account details needed to attach as compute to workspace
   adla_account_name = "<adla_account_name>" # Name of the Azure Data Lake Analytics account
   adla_resource_group = "<adla_resource_group>" # Name of the resource group which contains this account

   try:
       # check if already attached
       adla_compute = AdlaCompute(ws, adla_compute_name)
   except ComputeTargetException:
       print('attaching adla compute...')
       attach_config = AdlaCompute.attach_configuration(resource_group=adla_resource_group, account_name=adla_account_name)
       adla_compute = ComputeTarget.attach(ws, adla_compute_name, attach_config)
       adla_compute.wait_for_completion()

   print("Using ADLA compute:{}".format(adla_compute.cluster_resource_id))
   print("Provisioning state:{}".format(adla_compute.provisioning_state))
   print("Provisioning errors:{}".format(adla_compute.provisioning_errors))

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

create

通过指定计算类型和相关配置来预配 Compute 对象。

此方法创建新的计算目标,而不是附加现有计算目标。

static create(workspace, name, provisioning_configuration)

参数

名称 说明
workspace
必需

要创建 Compute 对象的工作区对象。

name
必需
str

要与 Compute 对象关联的名称。

provisioning_configuration
必需

ComputeTargetProvisioningConfiguration 对象,用于确定要预配的 Compute 对象的类型及其配置方式。

返回

类型 说明

与预配的对象类型对应的 ComputeTarget 子级的实例。

例外

类型 说明

注解

预配的对象类型由提供的预配配置确定。

在以下示例中,创建了由 AmlCompute 预配的持续计算目标。 此示例中的 provisioning_configuration 参数的类型为 AmlComputeProvisioningConfiguration


   from azureml.core.compute import ComputeTarget, AmlCompute
   from azureml.core.compute_target import ComputeTargetException

   # Choose a name for your CPU cluster
   cpu_cluster_name = "cpu-cluster"

   # Verify that cluster does not exist already
   try:
       cpu_cluster = ComputeTarget(workspace=ws, name=cpu_cluster_name)
       print('Found existing cluster, use it.')
   except ComputeTargetException:
       compute_config = AmlCompute.provisioning_configuration(vm_size='STANDARD_D2_V2',
                                                              max_nodes=4)
       cpu_cluster = ComputeTarget.create(ws, cpu_cluster_name, compute_config)

   cpu_cluster.wait_for_completion(show_output=True)

完整示例可从 https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/training/train-on-amlcompute/train-on-amlcompute.ipynb 获取

delete

从其关联的工作区删除 Compute 对象。

ComputeTarget 的子类实现此抽象方法。

abstract delete()

例外

类型 说明

注解

如果此对象是通过 Azure 机器学习创建的,则相应的基于云的对象也将被删除。 如果此对象是在外部创建的,并且仅附加到工作区,则此方法会引发异常且不会进行任何更改。

deserialize

将 JSON 对象转换为 Compute 对象。

abstract static deserialize(workspace, object_dict)

参数

名称 说明
workspace
必需

Compute 对象关联的工作区对象。

object_dict
必需

要转换为 Compute 对象的 JSON 对象。

返回

类型 说明

所提供的 JSON 对象的 Compute 表示形式。

例外

类型 说明

注解

如果提供的工作区不是与计算关联的工作区,则引发 ComputeTargetException

detach

从关联的工作区拆离 Compute 对象。

ComputeTarget 的子类实现此抽象方法。 不会删除基础云对象,只会删除其关联。

abstract detach()

例外

类型 说明

get_status

检索 Compute 对象的当前预配状态。

get_status()

返回

类型 说明
str

当前的 provisioning_state

例外

类型 说明

注解

返回的值在 Azure REST API Reference for ProvisioningState 中列出。

list

列出工作区内的所有 ComputeTarget 对象。

返回与特定计算类型相对应的实例化子对象的列表。 对象是 ComputeTarget 的子对象。

static list(workspace)

参数

名称 说明
workspace
必需

包含要列出对象的工作区对象。

返回

类型 说明

工作区中的计算目标列表。

例外

类型 说明

refresh_state

执行对象属性的就地更新。

根据相应云对象的当前状态更新属性。 主要用于手动轮询计算状态。

ComputeTarget 的子类实现此抽象方法。

abstract refresh_state()

例外

类型 说明

serialize

将此 Compute 对象转换为 JSON 序列化字典。

abstract serialize()

返回

类型 说明

此 Compute 对象的 JSON 表示形式。

例外

类型 说明

wait_for_completion

等待当前预配操作在群集上完成。

如果在轮询 Compute 对象时出现问题,此方法将返回 ComputeTargetException

wait_for_completion(show_output=False, is_delete_operation=False)

参数

名称 说明
show_output

指示是否提供更详细的输出。

默认值: False
is_delete_operation

指示操作是否用于删除。

默认值: False

例外

类型 说明