ComputeTarget 类

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

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

类 ComputeTarget 构造函数。

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

构造函数

ComputeTarget(workspace, name)

参数

名称 说明
workspace
必需

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

name
必需
str

要检索的 Compute 对象的名称。

workspace
必需

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

name
必需
str

要检索的 Compute 对象的名称。

注解

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

方法

attach

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

create

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

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

delete

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

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

deserialize

将 JSON 对象转换为计算对象。

detach

从其关联的工作区中分离计算对象。

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

get_status

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

list

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

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

refresh_state

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

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

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

serialize

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

wait_for_completion

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

如果轮询计算对象时出现问题,此方法将返回一个 ComputeTargetException

attach

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

static attach(workspace, name, attach_configuration)

参数

名称 说明
workspace
必需

要向其附加计算对象的工作区对象。

name
必需
str

要与 Compute 对象关联的名称。

attach_configuration
必需

一个 ComputeTargetAttachConfiguration 对象,用于确定要附加的 Compute 对象的类型以及如何对其进行配置。

返回

类型 说明

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

例外

类型 说明

注解

要传递给参数 attach_configuration 的对象的类型是一个 ComputeTargetAttachConfiguration 对象,该对象是使用该 attach_configuration 函数在任何子类 ComputeTarget上生成的对象。

以下示例演示如何使用 attach_configuration AdlaCompute 的方法将 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

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

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

static create(workspace, name, provisioning_configuration)

参数

名称 说明
workspace
必需

要创建计算对象的工作区对象。

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 对象转换为计算对象。

abstract static deserialize(workspace, object_dict)

参数

名称 说明
workspace
必需

计算对象与之关联的工作区对象。

object_dict
必需

要转换为计算对象的 JSON 对象。

返回

类型 说明

提供的 JSON 对象的计算表示形式。

注解

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

detach

从其关联的工作区中分离计算对象。

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

abstract detach()

get_status

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

get_status()

返回

类型 说明
str

当前 provisioning_state

注解

返回的值列在 ProvisioningState 的 Azure REST API 参考中。

list

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

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

static list(workspace)

参数

名称 说明
workspace
必需

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

返回

类型 说明

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

例外

类型 说明

refresh_state

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

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

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

abstract refresh_state()

serialize

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

abstract serialize()

返回

类型 说明

此计算对象的 JSON 表示形式。

wait_for_completion

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

如果轮询计算对象时出现问题,此方法将返回一个 ComputeTargetException

wait_for_completion(show_output=False, is_delete_operation=False)

参数

名称 说明
show_output

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

默认值: False
is_delete_operation

指示作是否用于删除。

默认值: False

例外

类型 说明