RunConfiguration 类
表示针对 Azure 机器学习中不同计算目标的试验运行配置。
RunConfiguration 对象封装在试验中提交训练运行所需的信息。 通常,不会直接创建 RunConfiguration 对象,而是从返回 RunConfiguration 对象的方法中获取一个,例如 Experiment 类的 submit 方法。
RunConfiguration 是一种基础环境配置,也用于其他类型的配置步骤,具体取决于要触发的运行类型。 例如,设置 PythonScriptStep 时,可以访问步骤的 RunConfiguration 对象并配置 Conda 依赖项或访问运行的环境属性。
有关示例运行配置,请参阅选择并使用计算目标来训练模型。
使用默认设置初始化 RunConfiguration。
- 继承
-
azureml._base_sdk_common.abstract_run_config_element._AbstractRunConfigElementRunConfiguration
构造函数
RunConfiguration(script=None, arguments=None, framework=None, communicator=None, conda_dependencies=None, _history_enabled=None, _path=None, _name=None, command=None)
参数
名称 | 说明 |
---|---|
script
|
Python 脚本文件的相对路径。 相对于传递给 submit 的源目录的文件路径。 默认值: None
|
arguments
|
Python 脚本文件的命令行参数。 默认值: None
|
framework
|
运行中使用的目标框架。 受支持的框架包括 Python、PySpark、TensorFlow 和 PyTorch。 默认值: None
|
communicator
|
运行中使用的通信器。 受支持通信器包括 None、ParameterServer、OpenMpi 和 IntelMpi。 请记住,OpenMpi 需要安装 OpenMpi 的自定义映像。 对 AmlCompute 群集使用 ParameterServer 或 OpenMpi。 将 IntelMpi 用于分布式训练作业。 默认值: None
|
conda_dependencies
|
当保留为默认值 False 时,系统将创建一个 Python 环境,其中包括 默认值: None
|
auto_prepare_environment
必需
|
已弃用。 该设置不再使用。 |
command
|
要为运行提交的命令。 命令属性也可以用来替代脚本/参数。 命令和脚本/参数属性不能一起用于提交运行。 要上传脚本文件,使用命令参数 - ['python', 'train.py', '–arg1', arg1_val],运行实际命令 - ['ls'] 默认值: None
|
_history_enabled
|
默认值: None
|
_path
|
默认值: None
|
_name
|
默认值: None
|
注解
我们通常生成机器学习系统来解决特定问题。 例如,我们可能需要找到最适合的模型来对网页进行排序,这可能被用作与查询相对应的搜索结果。 在搜索最适合的机器学习模型时,我们可能需要尝试不同的算法,或考虑不同的参数设置等。
在 Azure 机器学习 SDK 中,我们使用试验的概念来抓住这样一个想法,即不同的训练允许与其试图解决的问题是相关的。 然后 Experiment 充当这些训练运行的逻辑容器,以便更轻松地跟踪训练运行的进度、直接比较两个训练运行,等等。
RunConfiguration 封装在试验中提交训练运行所需的执行环境设置。 它捕获旨在解决相同机器学习问题的训练运行的共享结构,以及配置参数 (的差异,例如,学习率、损失函数等,) 区分不同的训练运行。
在典型的训练方案中,通过创建对象 ScriptRunConfig 来使用 RunConfiguration,该对象将 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
|
允许运行花费的最长时间。 如果运行时间超过此值,系统会尝试自动取消运行。 |
node_count
|
用于作业的节点数。 |
priority
|
用于计划策略的作业优先级。 |
history
|
用于禁用和启用试验历史记录日志记录功能的配置节。 |
spark
|
当平台设置为 PySpark 时,Spark 配置节用于为提交的作业设置默认 SparkConf。 |
hdi
|
HDI 配置节仅在目标设置为 Azure HDI 计算时生效。 HDI 配置用于设置 YARN 部署模式。 默认部署模式为群集。 |
docker
|
Docker 配置节用于为 Docker 环境设置变量。 |
tensorflow
|
用于配置分布式 TensorFlow 参数的配置节。
此参数仅在 |
mpi
|
用于配置分布式 MPI 作业参数的配置节。
仅当 |
pytorch
|
用于配置分布式 PyTorch 作业参数的配置节。
仅当 |
paralleltask
|
用于配置分布式并行任务作业参数的配置节。
仅当 |
data_references
|
基于每个配置,所有数据源都可用于执行期间的运行。 对于字典的每一项,键是为数据源提供的名称,值为 DataReferenceConfiguration。 |
data
|
在执行期间可用于运行的所有数据。 |
datacaches
|
<xref:buildin.list>[DatacacheConfiguration]
在执行期间使 datacache 可用于运行的所有数据。 |
output_data
|
应该为此运行上传并跟踪的所有输出。 |
source_directory_data_store
|
用于项目共享的备份数据存储。 |
amlcompute
|
要在试验期间创建的计算目标的详细信息。 此配置仅在计算目标为 AmlCompute 时生效。 |
kubernetescompute
|
要在试验期间使用的计算目标的详细信息。 此配置仅在计算目标为 KubernetesCompute 时生效。 |
services
|
要与计算资源交互的终结点。 允许的终结点为 Jupyter、JupyterLab、VS Code、Tensorboard、SSH 和 Custom 端口。 |
方法
delete |
删除运行配置文件。 如果找不到配置文件,则引发 UserErrorException。 |
load |
从磁盘上文件加载以前保存的运行配置文件。 如果 如果 |
save |
将 RunConfiguration 保存到磁盘上的文件。 引发 UserErrorException 的情况:
如果 如果 在手动编辑配置或与 CLI 共享配置时,此方法非常有用。 |
delete
删除运行配置文件。
如果找不到配置文件,则引发 UserErrorException。
static delete(path, name)
参数
名称 | 说明 |
---|---|
path
必需
|
用户为运行配置选择根目录。 通常,这是 Git 存储库或 Python 项目根目录。 将从名为 .azureml 的子目录中删除配置。 |
name
必需
|
配置文件名称。 |
例外
类型 | 说明 |
---|---|
UserErrorException
|
load
从磁盘上文件加载以前保存的运行配置文件。
如果 path
指向某文件,则从该文件加载 RunConfiguration。
如果 path
指向某目录(应该为项目目录),则从 <path>/.azureml/<name> 或 <path>/aml_config/<name> 加载 RunConfiguration。
static load(path, name=None)
参数
名称 | 说明 |
---|---|
path
必需
|
用户为运行配置选择根目录。 通常,这是 Git 存储库或 Python 项目根目录。 为实现后向兼容性,还将从 .azureml 或 aml_config子目录中加载配置。 如果文件不在这些目录中,则从指定路径加载该文件。 |
name
|
配置文件名称。 默认值: None
|
返回
类型 | 说明 |
---|---|
运行配置对象。 |
例外
类型 | 说明 |
---|---|
UserErrorException
|
save
将 RunConfiguration 保存到磁盘上的文件。
引发 UserErrorException 的情况:
无法用指定名称保存 RunConfiguration。
未指定
name
参数。path
参数无效。
如果 path
的格式为 <dir_path>/<file_name>,其中 <dir_path> 是有效目录,则 RunConfiguration 的保存位置为 <dir_path>/<file_name>。
如果 path
指向某目录(应该为项目目录),则在 <path>/.azureml/<name> 或 <path>/aml_config/<name> 保存 RunConfiguration。
在手动编辑配置或与 CLI 共享配置时,此方法非常有用。
save(path=None, name=None, separate_environment_yaml=False)
参数
名称 | 说明 |
---|---|
separate_environment_yaml
|
指示是否保存 Conda 环境配置。 如果为 True,则 Conda 环境配置将保存到名为 environment.yml 的 YAML 文件中。 默认值: False
|
path
|
用户为运行配置选择根目录。 通常,这是 Git 存储库或 Python 项目根目录。 配置将保存到名为 .azureml 的子目录中。 默认值: None
|
name
|
[必需] 配置文件名。 默认值: None
|
返回
类型 | 说明 |
---|---|
例外
类型 | 说明 |
---|---|
UserErrorException
|
属性
auto_prepare_environment
获取 auto_prepare_environment
参数。 这是已弃用且未使用的设置。