RunConfiguration 类

表示针对 Azure 机器学习中不同计算目标的试验运行的配置。

RunConfiguration 对象封装在试验中提交训练运行所需的信息。 通常,不会直接创建 RunConfiguration 对象,而是从返回它的方法(如 submit 类的方法 Experiment )获取一个。

RunConfiguration 是一种基本环境配置,也用于其他类型的配置步骤,具体取决于要触发的运行类型。 例如,设置时 PythonScriptStep,可以访问步骤的 RunConfiguration 对象,并配置 Conda 依赖项或访问运行的环境属性。

有关运行配置的示例,请参阅 “选择”并使用计算目标来训练模型

使用默认设置初始化 RunConfiguration。

构造函数

RunConfiguration(script=None, arguments=None, framework=None, communicator=None, conda_dependencies=None, _history_enabled=None, _path=None, _name=None, command=None)

参数

名称 说明
script
str

Python 脚本文件的相对路径。 文件路径相对于传递给 submit的源目录。

默认值: None
arguments

Python 脚本文件的命令行参数。

默认值: None
framework
str

运行中使用的目标框架。 支持的框架包括 Python、PySpark、TensorFlow 和 PyTorch。

默认值: None
communicator
str

运行中使用的 communicator。 支持的通信器为 None、ParameterServer、OpenMpi 和 IntelMpi。 请记住,OpenMpi 需要安装了 OpenMpi 的自定义映像。 对 AmlCompute 群集使用 ParameterServer 或 OpenMpi。 将 IntelMpi 用于分布式训练作业。

默认值: None
conda_dependencies

当保留为 False 的默认值时,系统将创建一个 Python 环境,其中包括在 中指定的 conda_dependencies包。 如果设置为 true,可以使用python_interpreter设置指定现有的 Python 环境。

默认值: None
auto_prepare_environment
必需

荒废的。 不再使用此设置。

command
list[str] 或 str

要为运行提交的命令。 还可以使用命令属性,而不是脚本/参数。 命令和脚本/参数属性不能一起使用来提交运行。 若要使用命令属性提交脚本文件 - ['python', 'train.py', '–arg1', arg1_val] 运行实际命令 - ['ls']

默认值: None
_history_enabled
默认值: None
_path
默认值: None
_name
默认值: None

注解

我们通常构建机器学习系统来解决特定问题。 例如,我们可能有兴趣查找对可能用作查询的搜索结果进行排名的最佳模型。 搜索最佳机器学习模型可能需要我们尝试不同的算法,或者考虑不同的参数设置等。

在 Azure 机器学习 SDK 中,我们使用试验的概念来捕获不同的训练运行与尝试解决的问题相关的概念。 然后,它 Experiment 充当这些训练运行的逻辑容器,以便更轻松地跟踪训练运行中的进度、直接比较两个训练运行等。

RunConfiguration 封装在试验中提交训练运行所需的执行环境设置。 它捕获旨在解决同一机器学习问题的训练运行的共享结构,以及配置参数(例如学习速率、损失函数等)的差异,这些参数区分不同的训练运行。

在典型的训练方案中,RunConfiguration 用于创建一个 ScriptRunConfig 将 RunConfiguration 对象和执行脚本打包在一起用于训练的对象。

RunConfiguration 的配置包括:

  • 捆绑试验源目录,包括提交的脚本。

  • 设置提交的脚本的命令行参数。

  • 配置 Python 解释器的路径。

  • 获取用于管理应用程序依赖项的 Conda 配置。 作业提交过程可以使用配置来预配临时 Conda 环境并在其中启动应用程序。 临时环境在后续运行中缓存并重复使用。

  • Docker 和自定义基础映像的可选用法。

  • 可选选择将试验提交到多种类型的 Azure 计算。

  • 可选选项,用于配置如何具体化输入和输出和上传输出。

  • 常见运行时(如 spark 和 tensorflow)的高级运行时设置。

以下示例演示如何在本地计算机上提交训练脚本。


   from azureml.core import ScriptRunConfig, RunConfiguration, Experiment

   # create or load an experiment
   experiment = Experiment(workspace, "MyExperiment")
   # run a trial from the train.py code in your current directory
   config = ScriptRunConfig(source_directory='.', script='train.py',
       run_config=RunConfiguration())
   run = experiment.submit(config)

以下示例演示如何使用命令属性而不是脚本和参数在群集上提交训练脚本。


   from azureml.core import ScriptRunConfig, Experiment
   # create or load an experiment
   experiment = Experiment(workspace, 'MyExperiment')
   # create or retrieve a compute target
   cluster = workspace.compute_targets['MyCluster']
   # create or retrieve an environment
   env = Environment.get(ws, name='MyEnvironment')
   # configure and submit your training run
   config = ScriptRunConfig(source_directory='.',
                            command=['python', 'train.py', '--arg1', arg1_val],
                            compute_target=cluster,
                            environment=env)
   script_run = experiment.submit(config)

以下示例演示如何在群集上运行命令。


   from azureml.core import ScriptRunConfig, Experiment
   # create or load an experiment
   experiment = Experiment(workspace, 'MyExperiment')
   # create or retrieve a compute target
   cluster = workspace.compute_targets['MyCluster']
   # create or retrieve an environment
   env = Environment.get(ws, name='MyEnvironment')
   # configure and submit your training run
   config = ScriptRunConfig(source_directory='.',
                            command=['ls', '-l'],
                            compute_target=cluster,
                            environment=env)
   script_run = experiment.submit(config)

变量

名称 说明
environment

环境定义。 此字段配置 Python 环境。 它可以配置为使用现有 Python 环境,也可以配置为设置试验的临时环境。 定义还负责设置所需的应用程序依赖项。

max_run_duration_seconds
int

运行所允许的最大时间。 如果运行时间超过此值,系统将尝试自动取消运行。

node_count
int

用于作业的节点数。

priority
int

计划策略的作业优先级。

history

用于禁用和启用试验历史记录日志记录功能的配置部分。

spark

当平台设置为 PySpark 时,Spark 配置部分用于为提交的作业设置默认 SparkConf。

hdi

仅当目标设置为 Azure HDI 计算时,HDI 配置部分才会生效。 HDI 配置用于设置 YARN 部署模式。 默认部署模式为群集。

docker

Docker 配置部分用于设置 Docker 环境的变量。

tensorflow

用于配置分布式 TensorFlow 参数的配置部分。 此参数仅在设置为 TensorFlow 和 framework ParameterServer 时才communicator生效。 AmlCompute 是此配置唯一支持的计算。

mpi

用于配置分布式 MPI 作业参数的配置部分。 此参数仅在设置为 Python 和 framework OpenMpi 或 IntelMpi 时才communicator生效。 AmlCompute 是此配置唯一支持的计算类型。

pytorch

用于配置分布式 PyTorch 作业参数的配置部分。 此参数仅在设置为 PyTorch 和 framework Nccl 或 Gloo 时才communicator生效。 AmlCompute 是此配置唯一支持的计算类型。

paralleltask

用于配置分布式 paralleltask 作业参数的配置部分。 此参数仅在设置为 Python 和 framework ParallelTask 时才communicator生效。 AmlCompute 是此配置唯一支持的计算类型。

data_references

在执行期间,所有数据源都可用于基于每个配置运行的数据源。 对于字典的每个项,键是提供给数据源的名称,值为 DataReferenceConfiguration。

data

在执行期间可供运行的所有数据。

datacaches
<xref:buildin.list>[DatacacheConfiguration]

使 datacache 在执行过程中可供运行的所有数据。

output_data

应为此运行上传和跟踪的所有输出。

source_directory_data_store
str

项目共享的后盾数据存储。

amlcompute

在试验期间要创建的计算目标的详细信息。 仅当计算目标为 AmlCompute 时,配置才会生效。

kubernetescompute

试验期间要使用的计算目标的详细信息。 仅当计算目标为 KubernetesCompute 时,配置才会生效。

services

与计算资源交互的终结点。 允许的终结点包括 Jupyter、JupyterLab、VS Code、Tensorboard、SSH 和自定义端口。

方法

delete

删除运行配置文件。

如果未找到配置文件,则引发该 UserErrorException 配置文件。

load

从磁盘文件加载以前保存的运行配置文件。

如果 path 指向某个文件,则会从该文件加载 RunConfiguration。

如果path指向应为项目目录的目录,则会从 <path/.azureml/>name< 或 >path<>/aml_config/<name> 加载 RunConfiguration。

save

将 RunConfiguration 保存到磁盘上的文件。

UserErrorException在:

  • 无法使用指定的名称保存 RunConfiguration。

  • name 指定参数。

  • 参数 path 无效。

如果 path 格式 <为 dir_path>/<file_name>,其中 <dir_path> 是有效目录,则 RunConfiguration 保存在 <dir_path>/<file_name>。

如果path指向应为项目目录的目录,则 RunConfiguration 保存在 <path/.azureml/>name< 或 >path<>/aml_config/<name>。

此方法在手动编辑配置或与 CLI 共享配置时非常有用。

delete

删除运行配置文件。

如果未找到配置文件,则引发该 UserErrorException 配置文件。

static delete(path, name)

参数

名称 说明
path
必需
str

用户选择了运行配置的根目录。 通常,这是 Git 存储库或 Python 项目根目录。 配置将从名为 .azureml 的子目录中删除。

name
必需
str

配置文件名称。

例外

类型 说明
UserErrorException

load

从磁盘文件加载以前保存的运行配置文件。

如果 path 指向某个文件,则会从该文件加载 RunConfiguration。

如果path指向应为项目目录的目录,则会从 <path/.azureml/>name< 或 >path<>/aml_config/<name> 加载 RunConfiguration。

static load(path, name=None)

参数

名称 说明
path
必需
str

用户选择了运行配置的根目录。 通常,这是 Git 存储库或 Python 项目根目录。 为了向后兼容,配置也将从 .azureml 或aml_config子目录加载。 如果该文件不在这些目录中,则会从指定的路径加载该文件。

name
str

配置文件名称。

默认值: None

返回

类型 说明

运行配置对象。

save

将 RunConfiguration 保存到磁盘上的文件。

UserErrorException在:

  • 无法使用指定的名称保存 RunConfiguration。

  • name 指定参数。

  • 参数 path 无效。

如果 path 格式 <为 dir_path>/<file_name>,其中 <dir_path> 是有效目录,则 RunConfiguration 保存在 <dir_path>/<file_name>。

如果path指向应为项目目录的目录,则 RunConfiguration 保存在 <path/.azureml/>name< 或 >path<>/aml_config/<name>。

此方法在手动编辑配置或与 CLI 共享配置时非常有用。

save(path=None, name=None, separate_environment_yaml=False)

参数

名称 说明
separate_environment_yaml

指示是否保存 Conda 环境配置。 如果为 True,Conda 环境配置将保存到名为“environment.yml”的 YAML 文件中。

默认值: False
path
str

用户选择了运行配置的根目录。 通常,这是 Git 存储库或 Python 项目根目录。 配置将保存到名为 .azureml 的子目录。

默认值: None
name
str

[必需]配置文件名称。

默认值: None

返回

类型 说明

属性

auto_prepare_environment

auto_prepare_environment获取参数。 这是已弃用且未使用的设置。

environment_variables

运行时环境变量。

返回

类型 说明

运行时变量

target

获取计划执行作业的计算目标。

默认目标是引用本地计算机的“local”。 可以使用函数 compute_targets找到可用的云计算目标。

返回

类型 说明
str

目标名称