Run 类

定义所有 Azure 机器学习试验运行的基类。

运行表示试验的单个试用。 运行用于监视试用的异步执行、记录指标和存储试用的输出,以及分析试用版生成的结果和访问项目。

提交脚本来训练 Azure 机器学习中的多种不同方案(包括 HyperDrive 运行、管道运行和 AutoML 运行)时,将创建运行对象。 当你或submit与类一start_loggingExperiment创建 Run 对象。

若要开始使用试验和运行,请参阅

初始化 Run 对象。

构造函数

Run(experiment, run_id, outputs=None, **kwargs)

参数

名称 说明
experiment
必需

包含的试验。

run_id
必需
str

运行的 ID。

outputs
str

要跟踪的输出。

默认值: None
_run_dto
必需
<xref:azureml._restclient.models.run_dto.RunDto>

仅供内部使用。

kwargs
必需

其他配置参数的字典。

experiment
必需

包含的试验。

run_id
必需
str

运行的 ID。

outputs
必需
str

要跟踪的输出。

kwargs
必需

其他配置参数的字典。

注解

运行表示试验的单个试用。 Run 对象用于监视试用的异步执行、记录指标和存储试用的输出,以及分析试用版生成的结果和访问项目。

运行在试验代码中用于将指标和项目记录到运行历史记录服务。

在试验之外使用运行来监视进度并查询和分析生成的指标和结果。

运行的功能包括:

  • 存储和检索指标和数据

  • 上传和下载文件

  • 使用标记和子层次结构轻松查找过去的运行

  • 将存储的模型文件注册为可作的模型

  • 存储、修改和检索运行的属性

  • 使用 get_context 该方法从远程环境加载当前运行

  • 高效快照文件或目录,实现可重现性

此类适用于 Experiment 以下方案:

  • 通过使用 执行代码创建运行

  • 使用 在笔记本中以交互方式创建运行 start_logging

  • 记录指标并在试验中上传项目,例如使用时 log

  • 在分析实验结果时读取指标和下载项目,例如使用时 get_metrics

若要提交运行,请创建描述试验运行方式的配置对象。 下面是可以使用的不同配置对象的示例:

  • ScriptRunConfig

  • azureml.train.automl.automlconfig.AutoMLConfig

  • azureml.train.hyperdrive.HyperDriveConfig

  • azureml.pipeline.core.Pipeline(用于Azure机器学习的管道模块)

  • azureml.pipeline.core.PublishedPipeline

  • azureml.pipeline.core.PipelineEndpoint

训练试验时,可以向运行添加以下指标。

  • 标量

    • 使用 log给定名称将数字或字符串值记录到运行中。 将指标记录到运行会导致该指标存储在试验中的运行记录中。 可以在运行中多次记录相同的指标,结果被视为该指标的向量。

    • 示例:run.log("accuracy", 0.95)

  • 列表

    • 使用 log_list给定名称将值列表记录到运行中。

    • 示例:run.log_list("accuracies", [0.6, 0.7, 0.87])

    • 使用 log_row 包含多个列的指标,如前 kwargs所述。 每个命名参数生成一个具有指定值的列。 log_row 可以调用一次以记录任意元组,或在循环中多次生成完整表。

    • 示例:run.log_row("Y over X", x=1, y=0.4)

    • 使用 log_table给定名称将字典对象记录到运行中。

    • 示例:run.log_table("Y over X", {"x":[1, 2, 3], "y":[0.6, 0.7, 0.89]})

  • 图片

    • 将映像记录记录到运行记录。 用于 log_image 将图像文件或 matplotlib 绘图记录到运行中。 这些图像将在运行记录中可见和可比较。

    • 示例:run.log_image("ROC", path)

方法

add_properties

将不可变属性添加到运行中。

标记和属性(两个 dict[str, str])在可变性上有所不同。 属性是不可变的,因此它们将创建一条永久记录用于审核目的。 标记是可变的。 有关使用标记和属性的详细信息,请参阅 标记和查找运行

add_type_provider

在运行历史记录中存储的自定义运行类型的扩展性挂钩。

cancel

将运行标记为已取消。

如果有一个关联的作业与一组cancel_uri字段,则也会终止该作业。

child_run

创建子运行。

clean

删除与在运行配置中指定的目标上运行对应的文件。

complete

等待处理任务队列。

然后运行标记为已完成。 这通常用于交互式笔记本方案。

create_children

创建一个或多个子运行。

download_file

从存储下载关联的文件。

download_files

如果未指定前缀,请从给定存储前缀(文件夹名称)或整个容器下载文件。

fail

将运行标记为失败。

(可选)使用传递给 error_details的消息或异常设置运行的 Error 属性。

flush

等待处理任务队列。

get

获取此工作区的运行 ID。

get_all_logs

将运行的所有日志下载到目录。

get_children

获取指定筛选器选择的当前运行的所有子级。

get_context

返回当前服务上下文。

使用此方法检索用于记录指标和上传文件的当前服务上下文。 如果 allow_offline 为 True(默认值),则针对 Run 对象的作将打印为标准输出。

get_detailed_status

获取运行的最新状态。 如果运行状态为“已排队”,则会显示详细信息。

get_details

获取运行的定义、状态信息、当前日志文件和其他详细信息。

get_details_with_logs

返回运行状态,包括日志文件内容。

get_environment

获取此运行使用的环境定义。

get_file_names

列出与运行关联的存储的文件。

get_metrics

检索记录到运行的指标。

如果 recursive 为 True(默认值为 False),则提取给定运行子树中运行的指标。

get_properties

从服务中提取运行的最新属性。

get_secret

从运行的上下文中获取机密值。

获取提供的名称的机密值。 机密名称引用与工作区关联的 Azure Key Vault 中存储的值。 有关使用机密的示例,请参阅 在训练运行中使用机密

get_secrets

获取给定机密名称列表的机密值。

获取所提供名称列表的已找到和未找到机密的字典。 每个机密名称引用与工作区关联的 Azure Key Vault 中存储的值。 有关使用机密的示例,请参阅 在训练运行中使用机密

get_snapshot_id

获取最新的快照 ID。

get_status

获取运行的最新状态。

返回的常见值包括“Running”、“Completed”和“Failed”。

get_submitted_run

荒废的。 使用 get_context

获取此试验的提交运行。

get_tags

从服务获取运行中的最新可变标记集。

list

获取可选筛选器指定的试验中的运行列表。

list_by_compute

获取由可选筛选器指定的计算中的运行列表。

log

使用给定名称将指标值记录到运行。

log_accuracy_table

将准确性表记录到项目存储。

准确性表指标是一种多用途的非标量指标,可用于生成多种类型的折线图,这些折线图因预测概率的空间而不断变化。 这些图表的示例包括 ROC、精度召回率和提升曲线。

准确性表的计算类似于 ROC 曲线的计算。 ROC 曲线以许多不同的概率阈值存储真正率和误报率。 准确性表存储许多概率阈值下的真实正数、误报、真负数和假负数。

有两种方法用于选择阈值:“probability”和“percentile”。它们与预测概率空间的采样方式不同。

概率阈值在 0 和 1 之间是均匀间隔的阈值。 如果NUM_POINTS为 5,概率阈值为 [0.0, 0.25, 0.5, 0.75, 1.0]。

百分位阈值根据预测概率的分布来分隔。 每个阈值对应于概率阈值处数据的百分位数。 例如,如果NUM_POINTS为 5,则第一个阈值将为第 0 百分位,第二个阈值为 25 百分位,第三个百分位为 50%,依此等。

概率表和百分位表都是三维列表,其中第一个维度表示类标签,第二个维度表示一个阈值(具有NUM_POINTS刻度),第三个维度始终有 4 个值:TP、FP、TN、FN,并且始终按该顺序排列。

混淆值(TP、FP、TN、FN)使用一个与其余策略进行计算。 有关更多详细信息,请参阅以下链接: https://en.wikipedia.org/wiki/Multiclass_classification

N = 验证数据集中的样本数 (示例 200 示例) M = # 阈值 = # 样本从概率空间 (示例 5 in example) C = # 类的完整数据集 (示例 3 in example)

准确性表的一些固定项:

  • TP + FP + TN + FN = 所有类的所有阈值的 N
  • TP + FN 在任何类的所有阈值上都是相同的
  • TN + FP 在任何类的所有阈值上都是相同的
  • 概率表和百分位表具有形状 [C, M, 4]

注意:M 可以是任何值并控制图表的分辨率:这与数据集无关,在计算指标时定义,并权衡存储空间、计算时间和分辨率。

类标签应为字符串,混淆值应为整数,阈值应为浮点数。

log_confusion_matrix

将混淆矩阵记录到项目存储。

这会记录 sklearn 混淆矩阵周围的包装器。 指标数据包含矩阵本身的类标签和 2D 列表。 有关如何计算指标的详细信息,请参阅以下链接: https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html

log_image

将映像指标记录到运行记录。

log_list

使用给定名称将指标值列表记录到运行。

log_predictions

将预测记录到项目存储。

这会记录一个指标分数,该分数可用于将真实目标值的分布与回归任务的预测值的分布进行比较。

预测是装箱的,为折线图上的误差线计算标准偏差。

log_residuals

将残差记录到项目存储。

这会记录显示回归任务的残差直方图所需的数据。 预测残差 - 实际。

应该有一个比计数数更多的边缘。 有关使用计数和边缘来表示直方图的示例,请参阅 numpy 直方图文档。 https://docs.scipy.org/doc/numpy/reference/generated/numpy.histogram.html

log_row

使用给定名称将行指标记录到运行。

log_table

使用给定名称将表指标记录到运行。

register_model

注册用于作化的模型。

remove_tags

删除此运行中的可变标记列表。

restore_snapshot

将快照还原为 ZIP 文件。 返回 ZIP 的路径。

set_tags

在运行时添加或修改一组标记。 未在字典中传递的标记保持不变。

还可以添加简单的字符串标记。 当这些标记作为键出现在标记字典中时,它们的值为 None。 有关详细信息,请参阅 标记和查找运行

start

将运行标记为已启动。

当运行由另一个执行组件创建时,这通常用于高级方案。

submit_child

提交试验并返回活动子运行。

tag

使用字符串键和可选字符串值标记运行。

take_snapshot

保存输入文件或文件夹的快照。

upload_file

将文件上传到运行记录。

upload_files

将文件上传到运行记录。

upload_folder

将指定的文件夹上传到给定的前缀名称。

wait_for_completion

等待此运行完成。 返回等待后的状态对象。

add_properties

将不可变属性添加到运行中。

标记和属性(两个 dict[str, str])在可变性上有所不同。 属性是不可变的,因此它们将创建一条永久记录用于审核目的。 标记是可变的。 有关使用标记和属性的详细信息,请参阅 标记和查找运行

add_properties(properties)

参数

名称 说明
properties
必需

存储在运行对象中的隐藏属性。

add_type_provider

在运行历史记录中存储的自定义运行类型的扩展性挂钩。

static add_type_provider(runtype, run_factory)

参数

名称 说明
runtype
必需
str

将为其调用工厂的 Run.type 的值。 示例包括“hyperdrive”或“azureml.scriptrun”,但可以使用自定义类型进行扩展。

run_factory
必需
<xref:function>

具有签名的函数 (试验,RunDto) -> 列出运行时要调用的运行。

cancel

将运行标记为已取消。

如果有一个关联的作业与一组cancel_uri字段,则也会终止该作业。

cancel()

child_run

创建子运行。

child_run(name=None, run_id=None, outputs=None)

参数

名称 说明
name
str

子运行的可选名称,通常为“part”指定。

默认值: None
run_id
str

子项的可选运行 ID,否则会自动生成它。 通常不设置此参数。

默认值: None
outputs
str

要跟踪子项的可选输出目录。

默认值: None

返回

类型 说明
Run

子运行。

注解

这用于隔离子部分的运行部分。 这可以为运行中有趣的可识别的“部件”完成此作,或者捕获子进程间的独立指标。

如果为子运行设置了输出目录,则子运行完成后,该目录的内容将上传到子运行记录。

clean

删除与在运行配置中指定的目标上运行对应的文件。

clean()

返回

类型 说明

已删除的文件列表。

complete

等待处理任务队列。

然后运行标记为已完成。 这通常用于交互式笔记本方案。

complete(_set_status=True)

参数

名称 说明
_set_status

指示是否发送用于跟踪的状态事件。

默认值: True

create_children

创建一个或多个子运行。

create_children(count=None, tag_key=None, tag_values=None)

参数

名称 说明
count
int

要创建的可选子级数。

默认值: None
tag_key
str

用于填充所有已创建子项中的 Tags 条目的可选键。

默认值: None
tag_Values
必需

一个可选值列表,这些值将映射到所创建的运行列表的 Tags[tag_key]。

tag_values
默认值: None

返回

类型 说明

子运行的列表。

注解

必须指定参数 count OR 参数 tag_key AND tag_values

download_file

从存储下载关联的文件。

download_file(name, output_file_path=None, _validate_checksum=False)

参数

名称 说明
name
必需
str

要下载的项目的名称。

output_file_path
必需
str

用于存储项目的本地路径。

download_files

如果未指定前缀,请从给定存储前缀(文件夹名称)或整个容器下载文件。

download_files(prefix=None, output_directory=None, output_paths=None, batch_size=100, append_prefix=True, timeout_seconds=None)

参数

名称 说明
prefix
必需
str

从中下载所有项目的容器中的 filepath 前缀。

output_directory
必需
str

所有项目路径都用作前缀的可选目录。

output_paths
必需
[str]

用于存储下载的项目的可选文件路径。 应是唯一且匹配路径长度。

batch_size
必需
int

要按批下载的文件数。 默认值为 100 个文件。

append_prefix
必需

一个可选标志,指示是否从最终输出文件路径追加指定的前缀。 如果为 False,则会从输出文件路径中删除前缀。

timeout_seconds
必需
int

下载文件的超时。

fail

将运行标记为失败。

(可选)使用传递给 error_details的消息或异常设置运行的 Error 属性。

fail(error_details=None, error_code=None, _set_status=True)

参数

名称 说明
error_details

错误的可选详细信息。

默认值: None
error_code
str

错误分类的错误的可选错误代码。

默认值: None
_set_status

指示是否发送用于跟踪的状态事件。

默认值: True

flush

等待处理任务队列。

flush(timeout_seconds=300)

参数

名称 说明
timeout_seconds
int

等待任务队列处理的时间(以秒为单位)。

默认值: 300

get

获取此工作区的运行 ID。

static get(workspace, run_id)

参数

名称 说明
workspace
必需

包含工作区。

run_id
必需

运行 ID。

返回

类型 说明
Run

提交的运行。

get_all_logs

将运行的所有日志下载到目录。

get_all_logs(destination=None)

参数

名称 说明
destination
str

用于存储日志的目标路径。 如果未指定,则会在项目目录中创建一个名为运行 ID 的目录。

默认值: None

返回

类型 说明

下载的日志的名称列表。

get_children

获取指定筛选器选择的当前运行的所有子级。

get_children(recursive=False, tags=None, properties=None, type=None, status=None, _rehydrate_runs=True)

参数

名称 说明
recursive

指示是否通过所有后代递归。

默认值: False
tags
strdict

如果指定,则返回与指定的 “tag” 或 {“tag”“value”} 匹配的运行。

默认值: None
properties
strdict

如果指定,则返回与指定的 “property” 或 {“property”“value”} 匹配的运行。

默认值: None
type
str

如果指定,则返回与此类型匹配的运行。

默认值: None
status
str

如果指定,则返回状态为“ status”的运行。

默认值: None
_rehydrate_runs

指示是实例化原始类型的运行还是基本运行。

默认值: True

返回

类型 说明

对象列表 Run

get_context

返回当前服务上下文。

使用此方法检索用于记录指标和上传文件的当前服务上下文。 如果 allow_offline 为 True(默认值),则针对 Run 对象的作将打印为标准输出。

get_context(allow_offline=True, used_for_context_manager=False, **kwargs)

参数

名称 说明
cls
必需

指示类方法。

allow_offline

允许服务上下文回退到脱机模式,以便可以在本地测试训练脚本,而无需使用 SDK 提交作业。 默认情况下为 True。

默认值: True
kwargs
必需

其他参数的字典。

used_for_context_manager
默认值: False

返回

类型 说明
Run

提交的运行。

注解

此函数通常用于检索脚本中经过身份验证的 Run 对象,以便通过 experiment.submit()提交执行。 此运行对象既是与 Azure 机器学习服务通信的经过身份验证的上下文,也是包含指标、文件(项目)和模型的概念容器。


   run = Run.get_context() # allow_offline=True by default, so can be run locally as well
   ...
   run.log("Accuracy", 0.98)
   run.log_row("Performance", epoch=e, error=err)

get_detailed_status

获取运行的最新状态。 如果运行状态为“已排队”,则会显示详细信息。

get_detailed_status()

返回

类型 说明

最新状态和详细信息

注解

  • status:运行当前状态。 与从 get_status() 返回的值相同。

  • 详细信息:当前状态的详细信息。


   run = experiment.submit(config)
   details = run.get_detailed_status()
   # details = {
   #     'status': 'Queued',
   #     'details': 'Run requested 1 node(s). Run is in pending status.',
   # }

get_details

获取运行的定义、状态信息、当前日志文件和其他详细信息。

get_details()

返回

类型 说明

返回运行的详细信息

注解

返回的字典包含以下键值对:

  • runId:此运行的 ID。

  • 目标

  • status:运行当前状态。 与从 get_status() 返回的值相同。

  • startTimeUtc:启动此运行的 UTC 时间,ISO8601。

  • endTimeUtc:ISO8601中完成此运行(已完成或失败)的 UTC 时间。

    如果运行仍在进行中,则此键不存在。

  • 属性:与运行关联的不可变键值对。 默认属性包括运行快照 ID 以及有关从中创建运行(如果有)的 git 存储库的信息。 可以使用 将其他属性添加到运行 中。

  • inputDatasets:与运行关联的输入数据集。

  • outputDatasets:输出与运行关联的数据集。

  • logFiles

  • submittedBy


   run = experiment.start_logging()

   details = run.get_details()
   # details = {
   #     'runId': '5c24aa28-6e4a-4572-96a0-fb522d26fe2d',
   #     'target': 'sdk',
   #     'status': 'Running',
   #     'startTimeUtc': '2019-01-01T13:08:01.713777Z',
   #     'endTimeUtc': '2019-01-01T17:15:65.986253Z',
   #     'properties': {
   #         'azureml.git.repository_uri': 'https://example.com/my/git/repo',
   #         'azureml.git.branch': 'master',
   #         'azureml.git.commit': '7dc972657c2168927a02c3bc2b161e0f370365d7',
   #         'azureml.git.dirty': 'True',
   #         'mlflow.source.git.repoURL': 'https://example.com/my/git/repo',
   #         'mlflow.source.git.branch': 'master',
   #         'mlflow.source.git.commit': '7dc972657c2168927a02c3bc2b161e0f370365d7',
   #         'ContentSnapshotId': 'b4689489-ce2f-4db5-b6d7-6ad11e77079c'
   #     },
   #     'inputDatasets': [{
   #         'dataset': {'id': 'cdebf245-701d-4a68-8055-41f9cf44f298'},
   #         'consumptionDetails': {
   #             'type': 'RunInput',
   #             'inputName': 'training-data',
   #             'mechanism': 'Mount',
   #             'pathOnCompute': '/mnt/datasets/train'
   #         }
   #     }],
   #     'outputDatasets': [{
   #         'dataset': {'id': 'd04e8a19-1caa-4b1f-b318-4cbff9af9615'},
   #         'outputType': 'RunOutput',
   #         'outputDetails': {
   #             'outputName': 'training-result'
   #         }
   #     }],
   #     'runDefinition': {},
   #     'logFiles': {},
   #     'submittedBy': 'Alan Turing'
   # }

get_details_with_logs

返回运行状态,包括日志文件内容。

get_details_with_logs()

返回

类型 说明

返回包含日志文件内容的运行状态。

get_environment

获取此运行使用的环境定义。

get_environment()

返回

类型 说明

返回环境对象。

get_file_names

列出与运行关联的存储的文件。

get_file_names()

返回

类型 说明

现有项目的路径列表

get_metrics

检索记录到运行的指标。

如果 recursive 为 True(默认值为 False),则提取给定运行子树中运行的指标。

get_metrics(name=None, recursive=False, run_type=None, populate=False)

参数

名称 说明
name
str

指标的名称。

默认值: None
recursive

指示是否通过所有后代递归。

默认值: False
run_type
str
默认值: None
populate

指示是否提取链接到指标的外部数据的内容。

默认值: False

返回

类型 说明

包含用户指标的字典。

注解


   run = experiment.start_logging() # run id: 123
   run.log("A", 1)
   with run.child_run() as child: # run id: 456
       child.log("A", 2)

   metrics = run.get_metrics()
   # metrics = { 'A': 1 }

   metrics = run.get_metrics(recursive=True)
   # metrics = { '123': { 'A': 1 }, '456': { 'A': 2 } } note key is runId

get_properties

从服务中提取运行的最新属性。

get_properties()

返回

类型 说明

运行的属性。

注解

属性是系统生成的不可变信息,例如持续时间、执行日期、用户和随该方法添加的 add_properties 自定义属性。 有关详细信息,请参阅 标记和查找运行

将作业提交到 Azure 机器学习时,如果源文件存储在本地 git 存储库中,则有关存储库的信息将存储为属性。 创建运行或调用 Experiment.submit 时会添加这些 git 属性。 有关 git 属性的详细信息,请参阅 Azure 机器学习的 Git 集成

get_secret

从运行的上下文中获取机密值。

获取提供的名称的机密值。 机密名称引用与工作区关联的 Azure Key Vault 中存储的值。 有关使用机密的示例,请参阅 在训练运行中使用机密

get_secret(name)

参数

名称 说明
name
必需
str

要为其返回机密的机密名称。

返回

类型 说明
str

机密值。

get_secrets

获取给定机密名称列表的机密值。

获取所提供名称列表的已找到和未找到机密的字典。 每个机密名称引用与工作区关联的 Azure Key Vault 中存储的值。 有关使用机密的示例,请参阅 在训练运行中使用机密

get_secrets(secrets)

参数

名称 说明
secrets
必需

要为其返回机密值的机密名称的列表。

返回

类型 说明

返回已找到的机密和未找到机密的字典。

get_snapshot_id

获取最新的快照 ID。

get_snapshot_id()

返回

类型 说明
str

最新的快照 ID。

get_status

获取运行的最新状态。

返回的常见值包括“Running”、“Completed”和“Failed”。

get_status()

返回

类型 说明
str

最新状态。

注解

  • NotStarted - 这是云提交之前客户端运行对象的临时状态。

  • 正在启动 - 运行已开始在云中进行处理。 此时,调用方具有运行 ID。

  • 预配 - 在为给定作业提交创建按需计算时返回。

  • 准备 - 正在准备运行环境:

    • docker 映像生成

    • conda 环境设置

  • 已排队 - 作业在计算目标中排队。 例如,在 BatchAI 中,作业处于排队状态

    同时等待所有请求的节点准备就绪。

  • 正在运行 - 作业开始在计算目标中运行。

  • 完成 - 用户代码已完成,运行处于处理后阶段。

  • CancelRequested - 已请求取消作业。

  • 已完成 - 运行成功完成。 这包括用户代码和运行

    后处理阶段。

  • 失败 - 运行失败。 通常,运行中的 Error 属性将提供原因的详细信息。

  • 已取消 - 遵循取消请求,并指示运行现已成功取消。

  • NotResponding - 对于启用了检测信号的运行,最近未发送检测信号。


   run = experiment.submit(config)
   while run.get_status() not in ['Completed', 'Failed']: # For example purposes only, not exhaustive
       print('Run {} not in terminal state'.format(run.id))
       time.sleep(10)

get_submitted_run

荒废的。 使用 get_context

获取此试验的提交运行。

get_submitted_run(**kwargs)

返回

类型 说明
Run

提交的运行。

get_tags

从服务获取运行中的最新可变标记集。

get_tags()

返回

类型 说明

存储在运行对象上的标记。

list

获取可选筛选器指定的试验中的运行列表。

static list(experiment, type=None, tags=None, properties=None, status=None, include_children=False, _rehydrate_runs=True)

参数

名称 说明
experiment
必需

包含的试验。

type
str

如果指定,则返回与指定类型匹配的运行。

默认值: None
tags
strdict

如果指定,则返回与指定的 “tag” 或 {“tag”“value”} 匹配的运行。

默认值: None
properties
strdict

如果指定,则返回与指定的 “property” 或 {“property”“value”} 匹配的运行。

默认值: None
status
str

如果指定,则返回状态为“ status”的运行。

默认值: None
include_children

如果设置为 true,则提取所有运行,而不仅仅是顶级运行。

默认值: False
_rehydrate_runs

如果设置为 True(默认情况下),将使用已注册的提供程序为该类型(而不是基本 Run)重新初始化对象。

默认值: True

返回

类型 说明

运行列表。

注解

下面的代码示例演示了该方法 list 的一些用法。


   favorite_completed_runs = Run.list(experiment, status='Completed', tags='favorite')

   all_distinct_runs = Run.list(experiment)
   and_their_children = Run.list(experiment, include_children=True)

   only_script_runs = Run.list(experiment, type=ScriptRun.RUN_TYPE)

list_by_compute

获取由可选筛选器指定的计算中的运行列表。

static list_by_compute(compute, type=None, tags=None, properties=None, status=None)

参数

名称 说明
compute
必需

包含的计算。

type
str

如果指定,则返回与指定类型匹配的运行。

默认值: None
tags
strdict

如果指定,则返回与指定的 “tag” 或 {“tag”“value”} 匹配的运行。

默认值: None
properties
strdict

如果指定,则返回与指定的 “property” 或 {“property”“value”} 匹配的运行。

默认值: None
status
str

如果指定,则返回状态为“ status”的运行。 仅允许的值为“Running”和“Queued”。

默认值: None

返回

类型 说明
<xref:builtin.generator>

~_restclient.models.RunDto 的生成器

log

使用给定名称将指标值记录到运行。

log(name, value, description='', step=None)

参数

名称 说明
name
必需
str

指标的名称。

value
必需

要发布到服务的值。

description
必需
str

可选指标说明。

step
int

用于在指标中指定值顺序的可选轴。

默认值: None

注解

将指标记录到运行会导致该指标存储在试验中的运行记录中。 可以在运行中多次记录相同的指标,结果被视为该指标的向量。 如果为指标指定了步骤,则必须为所有值指定该步骤。

log_accuracy_table

将准确性表记录到项目存储。

准确性表指标是一种多用途的非标量指标,可用于生成多种类型的折线图,这些折线图因预测概率的空间而不断变化。 这些图表的示例包括 ROC、精度召回率和提升曲线。

准确性表的计算类似于 ROC 曲线的计算。 ROC 曲线以许多不同的概率阈值存储真正率和误报率。 准确性表存储许多概率阈值下的真实正数、误报、真负数和假负数。

有两种方法用于选择阈值:“probability”和“percentile”。它们与预测概率空间的采样方式不同。

概率阈值在 0 和 1 之间是均匀间隔的阈值。 如果NUM_POINTS为 5,概率阈值为 [0.0, 0.25, 0.5, 0.75, 1.0]。

百分位阈值根据预测概率的分布来分隔。 每个阈值对应于概率阈值处数据的百分位数。 例如,如果NUM_POINTS为 5,则第一个阈值将为第 0 百分位,第二个阈值为 25 百分位,第三个百分位为 50%,依此等。

概率表和百分位表都是三维列表,其中第一个维度表示类标签,第二个维度表示一个阈值(具有NUM_POINTS刻度),第三个维度始终有 4 个值:TP、FP、TN、FN,并且始终按该顺序排列。

混淆值(TP、FP、TN、FN)使用一个与其余策略进行计算。 有关更多详细信息,请参阅以下链接: https://en.wikipedia.org/wiki/Multiclass_classification

N = 验证数据集中的样本数 (示例 200 示例) M = # 阈值 = # 样本从概率空间 (示例 5 in example) C = # 类的完整数据集 (示例 3 in example)

准确性表的一些固定项:

  • TP + FP + TN + FN = 所有类的所有阈值的 N
  • TP + FN 在任何类的所有阈值上都是相同的
  • TN + FP 在任何类的所有阈值上都是相同的
  • 概率表和百分位表具有形状 [C, M, 4]

注意:M 可以是任何值并控制图表的分辨率:这与数据集无关,在计算指标时定义,并权衡存储空间、计算时间和分辨率。

类标签应为字符串,混淆值应为整数,阈值应为浮点数。

log_accuracy_table(name, value, description='')

参数

名称 说明
name
必需
str

准确性表的名称。

value
必需
strdict

包含名称、版本和数据属性的 JSON。

description
必需
str

可选指标说明。

注解

有效 JSON 值的示例:


   {
       "schema_type": "accuracy_table",
       "schema_version": "1.0.1",
       "data": {
           "probability_tables": [
               [
                   [82, 118, 0, 0],
                   [75, 31, 87, 7],
                   [66, 9, 109, 16],
                   [46, 2, 116, 36],
                   [0, 0, 118, 82]
               ],
               [
                   [60, 140, 0, 0],
                   [56, 20, 120, 4],
                   [47, 4, 136, 13],
                   [28, 0, 140, 32],
                   [0, 0, 140, 60]
               ],
               [
                   [58, 142, 0, 0],
                   [53, 29, 113, 5],
                   [40, 10, 132, 18],
                   [24, 1, 141, 34],
                   [0, 0, 142, 58]
               ]
           ],
           "percentile_tables": [
               [
                   [82, 118, 0, 0],
                   [82, 67, 51, 0],
                   [75, 26, 92, 7],
                   [48, 3, 115, 34],
                   [3, 0, 118, 79]
               ],
               [
                   [60, 140, 0, 0],
                   [60, 89, 51, 0],
                   [60, 41, 99, 0],
                   [46, 5, 135, 14],
                   [3, 0, 140, 57]
               ],
               [
                   [58, 142, 0, 0],
                   [56, 93, 49, 2],
                   [54, 47, 95, 4],
                   [41, 10, 132, 17],
                   [3, 0, 142, 55]
               ]
           ],
           "probability_thresholds": [0.0, 0.25, 0.5, 0.75, 1.0],
           "percentile_thresholds": [0.0, 0.01, 0.24, 0.98, 1.0],
           "class_labels": ["0", "1", "2"]
       }
   }

log_confusion_matrix

将混淆矩阵记录到项目存储。

这会记录 sklearn 混淆矩阵周围的包装器。 指标数据包含矩阵本身的类标签和 2D 列表。 有关如何计算指标的详细信息,请参阅以下链接: https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html

log_confusion_matrix(name, value, description='')

参数

名称 说明
name
必需
str

混淆矩阵的名称。

value
必需
strdict

包含名称、版本和数据属性的 JSON。

description
必需
str

可选指标说明。

注解

有效 JSON 值的示例:


   {
       "schema_type": "confusion_matrix",
       "schema_version": "1.0.0",
       "data": {
           "class_labels": ["0", "1", "2", "3"],
           "matrix": [
               [3, 0, 1, 0],
               [0, 1, 0, 1],
               [0, 0, 1, 0],
               [0, 0, 0, 1]
           ]
       }
   }

log_image

将映像指标记录到运行记录。

log_image(name, path=None, plot=None, description='')

参数

名称 说明
name
必需
str

指标的名称。

path
必需
str

图像的路径或流。

plot
必需
<xref:matplotlib.pyplot>

要记录为图像的绘图。

description
必需
str

可选指标说明。

注解

使用此方法将图像文件或 matplotlib 绘图 记录到运行中。 这些图像将在运行记录中可见和可比较。

log_list

使用给定名称将指标值列表记录到运行。

log_list(name, value, description='')

参数

名称 说明
name
必需
str

指标的名称。

value
必需

指标的值。

description
必需
str

可选指标说明。

log_predictions

将预测记录到项目存储。

这会记录一个指标分数,该分数可用于将真实目标值的分布与回归任务的预测值的分布进行比较。

预测是装箱的,为折线图上的误差线计算标准偏差。

log_predictions(name, value, description='')

参数

名称 说明
name
必需
str

预测的名称。

value
必需
strdict

包含名称、版本和数据属性的 JSON。

description
必需
str

可选指标说明。

注解

有效 JSON 值的示例:


   {
       "schema_type": "predictions",
       "schema_version": "1.0.0",
       "data": {
           "bin_averages": [0.25, 0.75],
           "bin_errors": [0.013, 0.042],
           "bin_counts": [56, 34],
           "bin_edges": [0.0, 0.5, 1.0]
       }
   }

log_residuals

将残差记录到项目存储。

这会记录显示回归任务的残差直方图所需的数据。 预测残差 - 实际。

应该有一个比计数数更多的边缘。 有关使用计数和边缘来表示直方图的示例,请参阅 numpy 直方图文档。 https://docs.scipy.org/doc/numpy/reference/generated/numpy.histogram.html

log_residuals(name, value, description='')

参数

名称 说明
name
必需
str

残差的名称。

value
必需
strdict

包含名称、版本和数据属性的 JSON。

description
必需
str

可选指标说明。

注解

有效 JSON 值的示例:


   {
       "schema_type": "residuals",
       "schema_version": "1.0.0",
       "data": {
           "bin_edges": [50, 100, 200, 300, 350],
           "bin_counts": [0.88, 20, 30, 50.99]
       }
   }

log_row

使用给定名称将行指标记录到运行。

log_row(name, description=None, **kwargs)

参数

名称 说明
name
必需
str

指标的名称。

description
str

可选指标说明。

默认值: None
kwargs
必需

其他参数的字典。 在这种情况下,指标的列。

注解

使用 log_row 包含列的表指标,如 kwargs 中所述。 每个命名参数生成一个具有指定值的列。 log_row 可以调用一次来记录任意元组,也可以在循环中多次生成完整表。


   citrus = ['orange', 'lemon', 'lime']
   sizes = [ 10, 7, 3]
   for index in range(len(citrus)):
       run.log_row("citrus", fruit = citrus[index], size=sizes[index])

log_table

使用给定名称将表指标记录到运行。

log_table(name, value, description='')

参数

名称 说明
name
必需
str

指标的名称。

value
必需

指标的表值,一个字典,其中键是要发布到服务的列。

description
必需
str

可选指标说明。

register_model

注册用于作化的模型。

register_model(model_name, model_path=None, tags=None, properties=None, model_framework=None, model_framework_version=None, description=None, datasets=None, sample_input_dataset=None, sample_output_dataset=None, resource_configuration=None, **kwargs)

参数

名称 说明
model_name
必需
str

模型的名称。

model_path
str

模型的相对云路径,例如“outputs/modelname”。 如果未指定 (None), model_name 则用作路径。

默认值: None
tags

要分配给模型的键值标记的字典。

默认值: None
properties

要分配给模型的键值属性的字典。 创建模型后无法更改这些属性,但可以添加新的键值对。

默认值: None
model_framework
str

要注册的模型的框架。 当前支持的框架:TensorFlow、ScikitLearn、Onnx、Custom、Multi

默认值: None
model_framework_version
str

已注册模型的框架版本。

默认值: None
description
str

模型的可选说明。

默认值: None
datasets

元组列表,其中第一个元素描述数据集模型关系,第二个元素是数据集。

默认值: None
sample_input_dataset

可选。 已注册模型的输入数据集示例

默认值: None
sample_output_dataset

可选。 已注册模型的示例输出数据集

默认值: None
resource_configuration

可选。 用于运行已注册模型的资源配置

默认值: None
kwargs
必需

可选参数。

返回

类型 说明

已注册的模型。

注解


   model = best_run.register_model(model_name = 'best_model', model_path = 'outputs/model.pkl')

remove_tags

删除此运行中的可变标记列表。

remove_tags(tags)

参数

名称 说明
tags
必需

要删除的标记列表。

返回

类型 说明

存储在运行对象上的标记

restore_snapshot

将快照还原为 ZIP 文件。 返回 ZIP 的路径。

restore_snapshot(snapshot_id=None, path=None)

参数

名称 说明
snapshot_id
str

要还原的快照 ID。 如果未指定,则使用最新版本。

默认值: None
path
str

保存下载的 ZIP 的路径。

默认值: None

返回

类型 说明
str

路径。

set_tags

在运行时添加或修改一组标记。 未在字典中传递的标记保持不变。

还可以添加简单的字符串标记。 当这些标记作为键出现在标记字典中时,它们的值为 None。 有关详细信息,请参阅 标记和查找运行

set_tags(tags)

参数

名称 说明
tags
必需
dict[str] 或 str

存储在运行对象中的标记。

start

将运行标记为已启动。

当运行由另一个执行组件创建时,这通常用于高级方案。

start()

submit_child

提交试验并返回活动子运行。

submit_child(config, tags=None, **kwargs)

参数

名称 说明
config
必需

要提交的配置。

tags

要添加到提交的运行中的标记,例如 {“tag”: “value”}。

默认值: None
kwargs
必需

提交函数中用于配置的其他参数。

返回

类型 说明
Run

一个运行对象。

注解

Submit 是对 Azure 机器学习平台的异步调用,用于在本地或远程硬件上执行试用版。 根据配置,提交将自动准备执行环境、执行代码,并将源代码和结果捕获到试验的运行历史记录中。

若要提交试验,首先需要创建一个配置对象,描述试验的运行方式。 配置取决于所需的试用类型。

有关如何从本地计算机 ScriptRunConfig 提交子试验的示例如下所示:


   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 = parent_run.submit_child(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()

有关如何配置运行的详细信息,请参阅 submit

tag

使用字符串键和可选字符串值标记运行。

tag(key, value=None)

参数

名称 说明
key
必需
str

标记键

value
str

标记的可选值

默认值: None

注解

运行时的标记和属性都是字符串的字典 -> 字符串。 它们之间的差异是可变性:可以设置、更新和删除标记,而只能添加属性。 这使得属性更适合系统/工作流相关的行为触发器,而标记通常面向用户,对试验使用者有意义。


   run = experiment.start_logging()
   run.tag('DeploymentCandidate')
   run.tag('modifiedBy', 'Master CI')
   run.tag('modifiedBy', 'release pipeline') # Careful, tags are mutable

   run.add_properties({'BuildId': os.environ.get('VSTS_BUILD_ID')}) # Properties are not

   tags = run.get_tags()
   # tags = { 'DeploymentCandidate': None, 'modifiedBy': 'release pipeline' }

take_snapshot

保存输入文件或文件夹的快照。

take_snapshot(file_or_folder_path)

参数

名称 说明
file_or_folder_path
必需
str

包含运行源代码的文件或文件夹。

返回

类型 说明
str

返回快照 ID。

注解

快照旨在用作用于执行试验运行的 源代码 。 这些内容随运行一起存储,以便将来可以复制运行试用版。

注释

调用快照时 submit 会自动创建。 通常,take_snapshot方法仅适用于交互式(笔记本)运行。

upload_file

将文件上传到运行记录。

upload_file(name, path_or_stream, datastore_name=None)

参数

名称 说明
name
必需
str

要上传的文件的名称。

path_or_stream
必需
str

要上传的文件的相对本地路径或流。

datastore_name
必需
str

可选 DataStore 名称

返回

类型 说明

注解


   run = experiment.start_logging()
   run.upload_file(name='important_file', path_or_stream="path/on/disk/file.txt")

注释

在指定的输出目录中自动运行捕获文件,大多数运行类型默认为“./outputs”。 仅当需要上传其他文件或未指定输出目录时,才使用upload_file。

upload_files

将文件上传到运行记录。

upload_files(names, paths, return_artifacts=False, timeout_seconds=None, datastore_name=None)

参数

名称 说明
names
必需

要上传的文件的名称。 如果设置,还必须设置路径。

paths
必需

要上传的文件的相对本地路径。 如果已设置,则需要名称。

return_artifacts
必需

指示应为每个上传的文件返回项目对象。

timeout_seconds
必需
int

上传文件的超时。

datastore_name
必需
str

可选 DataStore 名称

注解

upload_files 与单独文件的效果 upload_file 相同,但在使用 upload_files时,性能和资源利用率优势也相同。


   import os

   run = experiment.start_logging()
   file_name_1 = 'important_file_1'
   file_name_2 = 'important_file_2'
   run.upload_files(names=[file_name_1, file_name_2],
                       paths=['path/on/disk/file_1.txt', 'other/path/on/disk/file_2.txt'])

   run.download_file(file_name_1, 'file_1.txt')

   os.mkdir("path")  # The path must exist
   run.download_file(file_name_2, 'path/file_2.txt')

注释

运行自动捕获指定输出目录中的文件,大多数运行类型默认为“./outputs”。 仅当需要上传其他文件或未指定输出目录时,才使用upload_files。

upload_folder

将指定的文件夹上传到给定的前缀名称。

upload_folder(name, path, datastore_name=None)

参数

名称 说明
name
必需
str

要上传的文件的文件夹的名称。

folder
必需
str

要上传的文件夹的相对本地路径。

datastore_name
必需
str

可选 DataStore 名称

注解


   run = experiment.start_logging()
   run.upload_folder(name='important_files', path='path/on/disk')

   run.download_file('important_files/existing_file.txt', 'local_file.txt')

注释

运行自动捕获指定输出目录中的文件,大多数运行类型默认为“./outputs”。 仅当需要上传其他文件或未指定输出目录时,才使用upload_folder。

wait_for_completion

等待此运行完成。 返回等待后的状态对象。

wait_for_completion(show_output=False, wait_post_processing=False, raise_on_error=True)

参数

名称 说明
show_output

指示是否在 sys.stdout 上显示运行输出。

默认值: False
wait_post_processing

指示是否在运行完成后等待后期处理完成。

默认值: False
raise_on_error

指示在运行处于失败状态时是否引发错误。

默认值: True

返回

类型 说明

状态对象。

属性

description

返回运行说明。

运行的可选说明是一个用户指定的字符串,可用于描述运行。

返回

类型 说明
str

运行说明。

display_name

返回运行显示名称。

运行的可选显示名称是一个用户指定的字符串,可用于以后标识运行。

返回

类型 说明
str

运行显示名称。

experiment

获取包含运行的试验。

返回

类型 说明

检索与运行对应的试验。

id

获取运行 ID。

运行 ID 是包含试验中唯一的标识符。

返回

类型 说明
str

运行 ID。

name

荒废的。 使用display_name。

运行的可选名称是一个用户指定的字符串,可用于以后标识运行。

返回

类型 说明
str

运行 ID。

number

获取运行编号。

一个单调递增的数字,表示试验中的运行顺序。

返回

类型 说明
int

运行编号。

parent

从服务中提取此运行的父运行。

运行可以具有可选的父级,从而导致潜在的运行树层次结构。 若要将指标记录到父运行,请使用 log 父对象的方法, run.parent.log()例如。

返回

类型 说明
Run

父运行;如果未设置父运行,则为 None。

properties

返回此运行的不可变属性。

返回

类型 说明
dict[str],
str

运行的本地缓存属性。

注解

属性包括不可变的系统生成信息,例如持续时间、执行日期、用户等。

status

返回运行对象的状态。

tags

返回此运行中的可变标记集。

返回

类型 说明

存储在运行对象上的标记。

type

获取运行类型。

指示如何创建或配置运行。

返回

类型 说明
str

运行类型。