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
|
Python 脚本文件的相对路径。 文件路径相对于传递给 submit的源目录。 默认值: None
|
arguments
|
Python 脚本文件的命令行参数。 默认值: None
|
framework
|
运行中使用的目标框架。 支持的框架包括 Python、PySpark、TensorFlow 和 PyTorch。 默认值: None
|
communicator
|
运行中使用的 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 封装在试验中提交训练运行所需的执行环境设置。 它捕获旨在解决同一机器学习问题的训练运行的共享结构,以及配置参数(例如学习速率、损失函数等)的差异,这些参数区分不同的训练运行。
在典型的训练方案中,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
|
运行所允许的最大时间。 如果运行时间超过此值,系统将尝试自动取消运行。 |
node_count
|
用于作业的节点数。 |
priority
|
计划策略的作业优先级。 |
history
|
用于禁用和启用试验历史记录日志记录功能的配置部分。 |
spark
|
当平台设置为 PySpark 时,Spark 配置部分用于为提交的作业设置默认 SparkConf。 |
hdi
|
仅当目标设置为 Azure HDI 计算时,HDI 配置部分才会生效。 HDI 配置用于设置 YARN 部署模式。 默认部署模式为群集。 |
docker
|
Docker 配置部分用于设置 Docker 环境的变量。 |
tensorflow
|
用于配置分布式 TensorFlow 参数的配置部分。
此参数仅在设置为 TensorFlow 和 |
mpi
|
用于配置分布式 MPI 作业参数的配置部分。
此参数仅在设置为 Python 和 |
pytorch
|
用于配置分布式 PyTorch 作业参数的配置部分。
此参数仅在设置为 PyTorch 和 |
paralleltask
|
用于配置分布式 paralleltask 作业参数的配置部分。
此参数仅在设置为 Python 和 |
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 和自定义端口。 |
方法
delete |
删除运行配置文件。 如果未找到配置文件,则引发该 UserErrorException 配置文件。 |
load |
从磁盘文件加载以前保存的运行配置文件。 如果 如果 |
save |
将 RunConfiguration 保存到磁盘上的文件。
如果 如果 此方法在手动编辑配置或与 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
|
返回
类型 | 说明 |
---|---|
运行配置对象。 |
save
将 RunConfiguration 保存到磁盘上的文件。
无法使用指定的名称保存 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
|
用户选择了运行配置的根目录。 通常,这是 Git 存储库或 Python 项目根目录。 配置将保存到名为 .azureml 的子目录。 默认值: None
|
name
|
[必需]配置文件名称。 默认值: None
|
返回
类型 | 说明 |
---|---|
属性
auto_prepare_environment
auto_prepare_environment
获取参数。 这是已弃用且未使用的设置。