问题描述
我使用 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 Class
和 DockerConfiguration Class
的文档对于应用 DockerConfiguration Class
不是很清楚。
我不知道如何使用 azureml.core.runconfig.DockerConfiguration
对象。有人可以为我提供一个例子吗?谢谢!
解决方法
ScriptRunConfig
类现在接受 docker_runtime_config
参数,这是您传递 DockerConfiguration
对象的地方。
所以,代码看起来像这样:
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)
,
为任何使用 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 属性直接从内部的 environment
移到了 RunConfiguration
。