RemoteCompute 类

管理用于 Azure 机器学习的远程计算目标。

Azure 机器学习支持将远程计算资源附加到工作区。 远程资源可以是 Azure VM、组织中或本地的远程服务器,只要 Azure 机器学习可访问该资源即可。 有关详细信息,请参阅什么是 Azure 机器学习中的计算目标?

类 ComputeTarget 构造函数。

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

继承
RemoteCompute

构造函数

RemoteCompute(workspace, name)

参数

workspace
Workspace
必需

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

name
str
必需

要检索的 RemoteCompute 对象的名称。

workspace
Workspace
必需

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

name
str
必需

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

注解

以下 Azure 区域不支持使用虚拟机或 HDInsight 群集的公共 IP 地址来附加计算目标。

  • 美国东部

  • 美国西部 2

  • 美国中南部

请改用 VM 或 HDInsight 群集的 Azure 资源管理器 ID。 可以采用以下面的字符串格式的订阅 ID、资源组名称和 VM 名称来构造 VM 的资源 ID: /subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.Compute/virtualMachines/<vm_name>。

以下示例显示如何创建和附加数据科学虚拟机 (DSVM) 作为计算目标。


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

   username = os.getenv('AZUREML_DSVM_USERNAME', default='<my_username>')
   address = os.getenv('AZUREML_DSVM_ADDRESS', default='<ip_address_or_fqdn>')

   compute_target_name = 'cpudsvm'
   # if you want to connect using SSH key instead of username/password you can provide parameters private_key_file and private_key_passphrase
   try:
       attached_dsvm_compute = RemoteCompute(workspace=ws, name=compute_target_name)
       print('found existing:', attached_dsvm_compute.name)
   except ComputeTargetException:
       attach_config = RemoteCompute.attach_configuration(address=address,
                                                          ssh_port=22,
                                                          username=username,
                                                          private_key_file='./.ssh/id_rsa')


   # Attaching a virtual machine using the public IP address of the VM is no longer supported.
   # Instead, use resourceId of the VM.
   # The resourceId of the VM can be constructed using the following string format:
   # /subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.Compute/virtualMachines/<vm_name>.
   # You can also use subscription_id, resource_group and vm_name without constructing resourceId.
       attach_config = RemoteCompute.attach_configuration(resource_id='<resource_id>',
                                                          ssh_port=22,
                                                          username='username',
                                                          private_key_file='./.ssh/id_rsa')

       attached_dsvm_compute = ComputeTarget.attach(ws, compute_target_name, attach_config)

       attached_dsvm_compute.wait_for_completion(show_output=True)

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

方法

attach

已弃用。 请改用 attach_configuration 方法。

将现有的远程计算资源与提供的工作区关联。

attach_configuration

创建用于附加远程计算目标的配置对象。

不再支持使用 VM 的公共 IP 地址附加虚拟机。 请改为使用 VM 的 resourceId。 可以使用下面的字符串格式来构造 VM 的 resourceId:"/subscriptions/<subscription_id>/resourceGroups/<resource_group>/ providers/Microsoft.Compute/virtualMachines/<vm_name>"。

还可以使用 subscription_id、resource_group 和 vm_name,而无需构造 resourceId。 有关详细信息,请参阅 https://aka.ms/azureml-compute-vm

delete

RemoteCompute 对象不支持删除操作。 请改用 detach

deserialize

将 JSON 对象转换为 RemoteCompute 对象。

detach

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

不会删除基础云对象,只会删除其关联。

get_credentials

检索 RemoteCompute 目标的凭据。

refresh_state

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

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

serialize

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

attach

已弃用。 请改用 attach_configuration 方法。

将现有的远程计算资源与提供的工作区关联。

static attach(workspace, name, username, address, ssh_port=22, password='', private_key_file='', private_key_passphrase='')

参数

workspace
Workspace
必需

要与计算资源关联的工作区对象。

name
str
必需

要与提供的工作区中的计算资源关联的名称。 无需与要附加的计算资源的名称匹配。

username
str
必需

访问资源所需的用户名。

address
str
必需

要附加的资源的地址。

ssh_port
int
默认值: 22

资源的已公开端口。 默认值为 22。

password
str
必需

访问资源所需的密码。

private_key_file
str
必需

包含资源私钥的文件的路径。

private_key_passphrase
str
必需

访问资源所需的私钥短语。

返回

计算对象的 RemoteCompute 对象表示形式。

返回类型

例外

attach_configuration

创建用于附加远程计算目标的配置对象。

不再支持使用 VM 的公共 IP 地址附加虚拟机。 请改为使用 VM 的 resourceId。 可以使用下面的字符串格式来构造 VM 的 resourceId:"/subscriptions/<subscription_id>/resourceGroups/<resource_group>/ providers/Microsoft.Compute/virtualMachines/<vm_name>"。

还可以使用 subscription_id、resource_group 和 vm_name,而无需构造 resourceId。 有关详细信息,请参阅 https://aka.ms/azureml-compute-vm

static attach_configuration(username, subscription_id=None, resource_group=None, vm_name=None, resource_id=None, address=None, ssh_port=22, password='', private_key_file='', private_key_passphrase='')

参数

username
str
必需

访问资源所需的用户名。

subscription_id
str
默认值: None

虚拟机所在的 Azure 订阅 ID。

resource_group
str
默认值: None

虚拟机所在的资源组的名称。

vm_name
str
默认值: None

虚拟机名称。

resource_id
str
默认值: None

现有资源的 Azure 资源管理器 (ARM) 资源 ID。

address
str
默认值: None

现有资源的地址。

ssh_port
int
默认值: 22

资源的已公开端口。 默认值为 22。

password
str
必需

访问资源所需的密码。

private_key_file
str
必需

包含资源私钥的文件的路径。

private_key_passphrase
str
必需

访问资源所需的私钥短语。

返回

要在附加计算对象时使用的配置对象。

返回类型

例外

delete

RemoteCompute 对象不支持删除操作。 请改用 detach

delete()

例外

deserialize

将 JSON 对象转换为 RemoteCompute 对象。

static deserialize(workspace, object_dict)

参数

workspace
Workspace
必需

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

object_dict
dict
必需

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

返回

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

返回类型

例外

注解

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

detach

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

不会删除基础云对象,只会删除其关联。

detach()

例外

get_credentials

检索 RemoteCompute 目标的凭据。

get_credentials()

返回

RemoteCompute 目标的凭据。

返回类型

例外

refresh_state

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

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

refresh_state()

例外

serialize

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

serialize()

返回

此 RemoteCompute 对象的 JSON 表示形式。

返回类型

例外