如何使用 azureml.core.Environment 中的 azureml.core.runconfig.DockerConfiguration 类或 azureml.core.ScriptRunConfig 类

How to use azureml.core.runconfig.DockerConfiguration class in azureml.core.Environment or azureml.core.ScriptRunConfig class

提问人:Stefan 提问时间:5/4/2021 最后编辑:Stefan 更新时间:8/17/2021 访问量:3946

问:

我使用 Microsoft Azure 机器学习 (Azure-ml) 来运行我的 (python) 试验。

为了指定 VM 和 python 环境,我使用:

from azureml.core import Environment
from azureml.core import ScriptRunConfig

# Other imports and code...

# Specify VM and Python environment:
vm_env = Environment.from_conda_specification(name='my-test-env', file_path=PATH_TO_YAML_FILE)
vm_env.docker.enabled = True
vm_env.docker.base_image = 'mcr.microsoft.com/azureml/openmpi3.1.2-cuda10.2-cudnn7-ubuntu18.04'

# Finally, use the environment in the ScriptRunConfig:
src = ScriptRunConfig(source_directory=DEPLOY_CONTAINER_FOLDER_PATH,
                      script=SCRIPT_FILE_TO_EXECUTE,
                      arguments=EXECUTE_ARGUMENTS,
                      compute_target=compute_target,
                      environment=vm_env)

我收到以下警告:vm_env.docker.enabled = True

'enabled' is deprecated. Please use the azureml.core.runconfig.DockerConfiguration object with the 'use_docker' param instead.

有关 DockerSection 类和 DockerConfiguration 类的文档对应用 .DockerConfiguration Class

我不知道如何使用azureml.core.runconfig.DockerConfiguration对象。有人可以给我举个例子吗?谢谢!

python azure-machine-learning-service azureml-python-sdk

评论


答:

14赞 Erik Z 5/6/2021 #1

该类现在接受一个参数,您可以在其中传递对象。ScriptRunConfigdocker_runtime_configDockerConfiguration

因此,代码将如下所示:

from azureml.core import Environment
from azureml.core import ScriptRunConfig
from azureml.core.runconfig import DockerConfiguration

# Other imports and code...

# Specify VM and Python environment:
vm_env = Environment.from_conda_specification(name='my-test-env', file_path=PATH_TO_YAML_FILE)
vm_env.docker.base_image = 'mcr.microsoft.com/azureml/openmpi3.1.2-cuda10.2-cudnn7-ubuntu18.04'

docker_config = DockerConfiguration(use_docker=True)

# Finally, use the environment in the ScriptRunConfig:
src = ScriptRunConfig(source_directory=DEPLOY_CONTAINER_FOLDER_PATH,
                      script=SCRIPT_FILE_TO_EXECUTE,
                      arguments=EXECUTE_ARGUMENTS,
                      compute_target=compute_target,
                      environment=vm_env,
                      docker_runtime_config=docker_config)

评论

0赞 Stefan 5/7/2021
谢谢!我将在接下来的几天内尝试一下,并让您知道它是如何:)的。
0赞 Stefan 5/8/2021
它完美无缺。对于阅读本文的其他人,请记住您还必须使用 .from azureml.core.runconfig import DockerConfiguration
0赞 Erik Z 5/9/2021
太棒了 - 很高兴听到它!
9赞 Moshe Zvi 8/12/2021 #2

为使用 RunConfiguration 的任何人添加另一个示例:

改变:

run_config = RunConfiguration()
run_config.environment.docker.enabled = True

自:

run_config = RunConfiguration()
docker_config = DockerConfiguration(use_docker=True)
run_config.docker = docker_config

run_config以后可以用作 PythonScriptStep 的参数。

请注意,docker 属性已从 internal 移至 direct。environmentRunConfiguration

评论

0赞 David Clarance 10/29/2021
谢谢,这对于我正在努力解决的问题非常有用。
0赞 Moran Neuhof 11/8/2021
我也很好用,一个快速简便的修复。谢谢!