Experiment 类
表示用于在 Azure 机器学习中创建和使用试验的主要入口点。
试验是表示多个模型运行的试用容器。
试验构造函数。
- 继承
-
azureml._logging.chained_identity.ChainedIdentityExperimentazureml.core._portal.HasExperimentPortalExperiment
构造函数
Experiment(workspace, name, _skip_name_validation=False, _id=None, _archived_time=None, _create_in_cloud=True, _experiment_dto=None, **kwargs)
参数
名称 | 说明 |
---|---|
workspace
必需
|
包含试验的工作区对象。 |
name
必需
|
试验名称。 |
kwargs
必需
|
关键字参数的字典。 |
workspace
必需
|
包含试验的工作区对象。 |
name
必需
|
试验名称。 |
kwargs
必需
|
关键字参数的字典。 |
_skip_name_validation
|
默认值: False
|
_id
|
默认值: None
|
_archived_time
|
默认值: None
|
_create_in_cloud
|
默认值: True
|
_experiment_dto
|
默认值: None
|
注解
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
存档试验。
archive()
注解
存档后,默认情况下不会列出试验。 尝试写入存档的实验将创建一个同名的新活动实验。 只要没有其他同名的活动实验,就可以通过调用 reactivate 来还原存档的实验。
delete
在工作区中删除一个试验。
static delete(workspace, experiment_id)
参数
名称 | 说明 |
---|---|
workspace
必需
|
试验所属的工作区。 |
experiment_id
必需
|
要删除的试验的试验 ID。 |
from_directory
(已弃用)从指定路径加载试验。
static from_directory(path, auth=None)
参数
名称 | 说明 |
---|---|
path
必需
|
包含试验配置文件的目录。 |
auth
|
身份验证对象。 如果为 None,则将使用默认的 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
重新激活已存档的试验。
reactivate(new_name=None)
参数
名称 | 说明 |
---|---|
new_name
必需
|
不再受支持 |
注解
仅当没有另一个同名的活动实验时,才能重新激活存档的实验。
refresh
从云中返回最新版本的试验。
refresh()
remove_tags
set_tags
start_logging
启动交互式日志记录会话,并在指定的试验中创建交互式运行。
start_logging(*args, **kwargs)
参数
名称 | 说明 |
---|---|
experiment
必需
|
试验。 |
outputs
必需
|
要跟踪的可选输出目录。对于“无输出”,请传递 False。 |
snapshot_directory
必需
|
要对其拍摄快照的可选目录。 设置为 None 不会创建快照。 |
args
必需
|
|
kwargs
必需
|
|
返回
类型 | 说明 |
---|---|
返回已启动的运行。 |
注解
start_logging 可创建 Jupyter Notebooks 等方案中使用的交互式运行。 试验中会话期间记录的任何指标都会添加到运行记录中。 如果指定了输出目录,则该目录的内容将在运行完成后作为运行项目上传。
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
必需
|
提交函数中用于配置的其他参数。 |
返回
类型 | 说明 |
---|---|
运行。 |
注解
提交是对 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)
参数
名称 | 说明 |
---|---|
key
必需
|
标记键 |
value
必需
|
标记的可选值 |
注解
试验中的标记存储在包含字符串键和字符串值的字典中。 可以设置、更新和删除标记。 标记面向用户,通常包含试验使用者的含义信息。
experiment.tag('')
experiment.tag('DeploymentCandidate')
experiment.tag('modifiedBy', 'Master CI')
experiment.tag('modifiedBy', 'release pipeline') # Careful, tags are mutable