Experiment 类
表示用于在 Azure 机器学习中创建和使用试验的主要入口点。
试验是表示多个模型运行的 试验 容器。
试验构造函数。
构造函数
Experiment(workspace, name, _skip_name_validation=False, _id=None, _archived_time=None, _create_in_cloud=True, _experiment_dto=None, **kwargs)
参数
注解
Azure 机器学习试验表示用于验证用户的假设的试验集合。
在 Azure 机器学习中,试验由 Experiment 类表示,试验由 Run 类表示。
若要从工作区获取或创建试验,请使用试验名称请求试验。 试验名称必须是 3-36 个字符,以字母或数字开头,只能包含字母、数字、下划线和短划线。
experiment = Experiment(workspace, "MyExperiment")
如果在工作区中找不到试验,则会创建一个新试验。
有两种方法可以执行试验试用版。 如果在 Jupyter Notebook 中以交互方式进行试验,请使用 start_logging :如果要从源代码或某种其他类型的配置试用版提交试验,请使用 submit
这两种机制都创建一个 Run 对象。 在交互式方案中,使用日志记录方法,例如 log 向试用记录添加度量值和指标。 在配置的方案中,使用状态方法,例如 get_status 检索有关运行的信息。
在这两种情况下,都可以使用查询方法来 get_metrics 检索当前值(如果有)的任何试用度量和指标。
archive |
存档试验。 |
delete |
删除工作区中的试验。 |
from_directory |
(已弃用)从指定路径加载试验。 |
get_docs_url |
指向此类文档的 URL。 |
get_runs |
按相反的时间顺序返回此试验的运行生成器。 |
list |
返回工作区中的试验列表。 |
reactivate |
重新激活存档的试验。 |
refresh |
从云中返回最新版本的试验。 |
remove_tags |
从试验中删除指定的标记。 |
set_tags |
在试验上添加或修改一组标记。 未在字典中传递的标记保持不变。 |
start_logging |
启动交互式日志记录会话并在指定的试验中创建交互式运行。 |
submit |
提交试验并返回活动创建的运行。 |
tag |
使用字符串键和可选字符串值标记试验。 |
archive
delete
删除工作区中的试验。
static delete(workspace, experiment_id)
参数
名称 | 说明 |
---|---|
workspace
必需
|
试验所属的工作区。 |
experiment_id
必需
|
要删除的试验的试验 ID。 |
from_directory
(已弃用)从指定路径加载试验。
static from_directory(path, auth=None)
参数
名称 | 说明 |
---|---|
path
必需
|
包含试验配置文件的目录。 |
auth
|
身份验证对象。 如果未使用默认 Azure CLI 凭据,则 API 将提示输入凭据。 默认值: None
|
返回
类型 | 说明 |
---|---|
返回试验 |
get_docs_url
get_runs
按相反的时间顺序返回此试验的运行生成器。
get_runs(type=None, tags=None, properties=None, include_children=False)
参数
名称 | 说明 |
---|---|
type
|
按提供的类型筛选返回的运行生成器。 请参阅 add_type_provider 创建运行类型。 默认值: None
|
tags
|
按“tag”或 {“tag”: “value”} 筛选运行。 默认值: None
|
properties
|
筛选器按“property”或 {“property”: “value”} 运行 默认值: None
|
include_children
|
默认情况下,仅提取顶级运行。 设置为 true 可列出所有运行。 默认值: False
|
返回
list
返回工作区中的试验列表。
static list(workspace, experiment_name=None, view_type='ActiveOnly', tags=None)
参数
名称 | 说明 |
---|---|
workspace
必需
|
要从中列出试验的工作区。 |
experiment_name
|
用于筛选试验的可选名称。 默认值: None
|
view_type
|
用于筛选或包括存档试验的可选枚举值。 默认值: ActiveOnly
|
tags
|
用于筛选试验的标记键或标记键值对的字典。 默认值: None
|
返回
类型 | 说明 |
---|---|
试验对象列表。 |
reactivate
refresh
从云中返回最新版本的试验。
refresh()
remove_tags
start_logging
启动交互式日志记录会话并在指定的试验中创建交互式运行。
start_logging(*args, **kwargs)
参数
名称 | 说明 |
---|---|
experiment
必需
|
试验。 |
outputs
必需
|
要跟踪的可选输出目录。对于无输出,请传递 False。 |
snapshot_directory
必需
|
要拍摄其快照的可选目录。 设置为“无”不会拍摄任何快照。 |
args
必需
|
|
kwargs
必需
|
|
返回
类型 | 说明 |
---|---|
返回启动的运行。 |
注解
start_logging 创建交互式运行,以便在 Jupyter Notebook 等方案中使用。 会话期间记录的任何指标将添加到试验中的运行记录。 如果指定了输出目录,该目录的内容会在运行完成后作为运行项目上传。
experiment = Experiment(workspace, "My Experiment")
run = experiment.start_logging(outputs=None, snapshot_directory=".", display_name="My Run")
...
run.log_metric("Accuracy", accuracy)
run.complete()
备注
为每个运行自动生成run_id,并在试验中是唯一的。
submit
提交试验并返回活动创建的运行。
submit(config, tags=None, **kwargs)
参数
名称 | 说明 |
---|---|
config
必需
|
要提交的配置。 |
tags
|
要添加到提交的运行中的标记 {“tag”: “value”}。 默认值: None
|
kwargs
必需
|
提交函数中用于配置的其他参数。 |
返回
类型 | 说明 |
---|---|
一段连续文本。 |
注解
Submit 是对 Azure 机器学习平台的异步调用,用于在本地或远程硬件上执行试用版。 根据配置,提交将自动准备执行环境、执行代码,并将源代码和结果捕获到试验的运行历史记录中。
若要提交试验,首先需要创建一个配置对象,描述试验的运行方式。 配置取决于所需的试用类型。
有关如何从本地计算机提交试验的示例如下所示:
from azureml.core import ScriptRunConfig
# 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)
# get the url to view the progress of the experiment and then wait
# until the trial is complete
print(run.get_portal_url())
run.wait_for_completion()
有关如何配置运行的详细信息,请参阅配置类型详细信息。
azureml.train.automl.automlconfig.AutoMLConfig
azureml.pipeline.core.Pipeline
azureml.pipeline.core.PublishedPipeline
azureml.pipeline.core.PipelineEndpoint
备注
提交训练运行时,将创建包含训练脚本的目录快照并将其发送到计算目标。 目录快照也作为试验的一部分存储在工作区中。 如果更改文件并再次提交运行,则只会上传已更改的文件。
若要防止快照中包含文件,请在目录中创建 .gitignore 或 .amlignore 文件,并将文件添加到其中。 .amlignore 文件使用与 .gitignore 文件相同的语法和模式。 如果这两个文件都存在, 则 .amlignore 文件优先。
有关详细信息,请参阅快照。
tag
使用字符串键和可选字符串值标记试验。
tag(key, value=None)
参数
注解
试验上的标记存储在包含字符串键和字符串值的字典中。 可以设置、更新和删除标记。 标记面向用户,通常包含试验使用者的含义信息。
experiment.tag('')
experiment.tag('DeploymentCandidate')
experiment.tag('modifiedBy', 'Master CI')
experiment.tag('modifiedBy', 'release pipeline') # Careful, tags are mutable