ComputeTarget Class
Abstract parent class for all compute targets managed by Azure Machine Learning.
A compute target is a designated compute resource/environment where you run your training script or host your service deployment. This location may be your local machine or a cloud-based compute resource. For more information, see What are compute targets in Azure Machine Learning?
Class ComputeTarget constructor.
Retrieve a cloud representation of a Compute object associated with the provided workspace. Returns an instance of a child class corresponding to the specific type of the retrieved Compute object.
- Inheritance
-
ComputeTarget
Constructor
ComputeTarget(workspace, name)
Parameters
Name | Description |
---|---|
workspace
Required
|
The workspace object containing the Compute object to retrieve. |
name
Required
|
The name of the Compute object to retrieve. |
workspace
Required
|
The workspace object containing the Compute object to retrieve. |
name
Required
|
The name of the of the Compute object to retrieve. |
Remarks
Use the ComputeTarget constructor to retrieve the cloud representation of a Compute object associated with the provided workspace. The constructor returns an instance of a child class corresponding to the specific type of the retrieved Compute object. If the Compute object is not found, a ComputeTargetException is raised.
Methods
attach |
Attach a Compute object to a workspace using the specified name and configuration information. |
create |
Provision a Compute object by specifying a compute type and related configuration. This method creates a new compute target rather than attaching an existing one. |
delete |
Remove the Compute object from its associated workspace. This abstract method is implemented by child classes of ComputeTarget. |
deserialize |
Convert a JSON object into a Compute object. |
detach |
Detach the Compute object from its associated workspace. This abstract method is implemented by child classes of ComputeTarget. Underlying cloud objects are not deleted, only their associations are removed. |
get_status |
Retrieve the current provisioning state of the Compute object. |
list |
List all ComputeTarget objects within the workspace. Return a list of instantiated child objects corresponding to the specific type of Compute. Objects are children of ComputeTarget. |
refresh_state |
Perform an in-place update of the properties of the object. Update properties based on the current state of the corresponding cloud object. This is useful for manual polling of compute state. This abstract method is implemented by child classes of ComputeTarget. |
serialize |
Convert this Compute object into a JSON serialized dictionary. |
wait_for_completion |
Wait for the current provisioning operation to finish on the cluster. This method returns a ComputeTargetException if there is a problem polling the compute object. |
attach
Attach a Compute object to a workspace using the specified name and configuration information.
static attach(workspace, name, attach_configuration)
Parameters
Name | Description |
---|---|
workspace
Required
|
The workspace object to attach the Compute object to. |
name
Required
|
The name to associate with the Compute object. |
attach_configuration
Required
|
A ComputeTargetAttachConfiguration object that is used to determine the type of Compute object to attach, and how to configure it. |
Returns
Type | Description |
---|---|
An instance of a child of ComputeTarget corresponding to the type of object attached. |
Exceptions
Type | Description |
---|---|
Remarks
The type of object to pass to the parameter attach_configuration
is a
ComputeTargetAttachConfiguration
object built using the attach_configuration
function on any of the child classes of
ComputeTarget.
The following example shows how to attach an ADLA account to a workspace using the attach_configuration method of AdlaCompute.
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))
Full sample is available from 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
Provision a Compute object by specifying a compute type and related configuration.
This method creates a new compute target rather than attaching an existing one.
static create(workspace, name, provisioning_configuration)
Parameters
Name | Description |
---|---|
workspace
Required
|
The workspace object to create the Compute object under. |
name
Required
|
The name to associate with the Compute object. |
provisioning_configuration
Required
|
A ComputeTargetProvisioningConfiguration object that is used to determine the type of Compute object to provision, and how to configure it. |
Returns
Type | Description |
---|---|
An instance of a child of ComputeTarget corresponding to the type of object provisioned. |
Exceptions
Type | Description |
---|---|
Remarks
The type of object provisioned is determined by the provisioning configuration provided.
In the following example, a persistent compute target provisioned by
AmlCompute is created. The provisioning_configuration
parameter in this
example is of type 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)
Full sample is available from https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/training/train-on-amlcompute/train-on-amlcompute.ipynb
delete
Remove the Compute object from its associated workspace.
This abstract method is implemented by child classes of ComputeTarget.
abstract delete()
Exceptions
Type | Description |
---|---|
Remarks
If this object was created through Azure Machine Learning, the corresponding cloud-based objects will also be deleted. If this object was created externally and only attached to the workspace, this method raises an exception and nothing is changed.
deserialize
Convert a JSON object into a Compute object.
abstract static deserialize(workspace, object_dict)
Parameters
Name | Description |
---|---|
workspace
Required
|
The workspace object the Compute object is associated with. |
object_dict
Required
|
A JSON object to convert to a Compute object. |
Returns
Type | Description |
---|---|
The Compute representation of the provided JSON object. |
Exceptions
Type | Description |
---|---|
Remarks
Raises a ComputeTargetException if the provided workspace is not the workspace the Compute is associated with.
detach
Detach the Compute object from its associated workspace.
This abstract method is implemented by child classes of ComputeTarget. Underlying cloud objects are not deleted, only their associations are removed.
abstract detach()
Exceptions
Type | Description |
---|---|
get_status
Retrieve the current provisioning state of the Compute object.
get_status()
Returns
Type | Description |
---|---|
The current |
Exceptions
Type | Description |
---|---|
Remarks
Values returned are listed in the Azure REST API Reference for ProvisioningState.
list
List all ComputeTarget objects within the workspace.
Return a list of instantiated child objects corresponding to the specific type of Compute. Objects are children of ComputeTarget.
static list(workspace)
Parameters
Name | Description |
---|---|
workspace
Required
|
The workspace object containing the objects to list. |
Returns
Type | Description |
---|---|
List of compute targets within the workspace. |
Exceptions
Type | Description |
---|---|
refresh_state
Perform an in-place update of the properties of the object.
Update properties based on the current state of the corresponding cloud object. This is useful for manual polling of compute state.
This abstract method is implemented by child classes of ComputeTarget.
abstract refresh_state()
Exceptions
Type | Description |
---|---|
serialize
Convert this Compute object into a JSON serialized dictionary.
abstract serialize()
Returns
Type | Description |
---|---|
The JSON representation of this Compute object. |
Exceptions
Type | Description |
---|---|
wait_for_completion
Wait for the current provisioning operation to finish on the cluster.
This method returns a ComputeTargetException if there is a problem polling the compute object.
wait_for_completion(show_output=False, is_delete_operation=False)
Parameters
Name | Description |
---|---|
show_output
|
Indicates whether to provide more verbose output. Default value: False
|
is_delete_operation
|
Indicates whether the operation is meant for deleting. Default value: False
|
Exceptions
Type | Description |
---|---|