IProgressChannel 接口

定义

用于进度报告的常见接口。 预期仅使用一个线程中的进度通道接口。

支持的工作流:

  1. 通过 StartProgressChannel(String). 创建通道。
  2. 根据需要多次调用 SetHeader(ProgressHeader, Action<IProgressEntry>) (,包括 0) 。 每次调用取代 SetHeader(ProgressHeader, Action<IProgressEntry>) 上一个调用。
  3. 通过调用 Checkpoint(Nullable<Double>[]) (0 个或多个) 报告检查点。
  4. 根据需要重复步骤 2-3。
  5. 释放通道。
public interface IProgressChannel : IDisposable, Microsoft.ML.Runtime.IProgressChannelProvider
type IProgressChannel = interface
    interface IProgressChannelProvider
    interface IDisposable
Public Interface IProgressChannel
Implements IDisposable, IProgressChannelProvider
实现

方法

Checkpoint(Nullable<Double>[])

提交“检查点”条目。 如果对进度侦听器感兴趣,则保证将这些条目传送到进度侦听器。 通常,这将包含一些中间指标,这些指标仅在某些时刻计算 (“检查点”) 计算。

例如,SDCA 可能会在每次计算损失时报告检查点,或者 LBFGS 可能会在每次迭代时报告检查点。

唯一的参数 values按以下方式解释:

  • 第一个 MetricNames.Length 项(如果存在)是指标。
  • 后续 ProgressNames.Length 项(如果存在)是进度单位。
  • 后续 ProgressNames.Length 项(如果存在)是进度限制。
  • 如果更多值仍然存在,则会引发异常。
SetHeader(ProgressHeader, Action<IProgressEntry>)

设置报告结构:

  • 设置进度报告的“标头”,定义将报告哪些进度单位和指标。
  • 提供一个线程安全的委托,每当任何人需要知道进度时,都会调用该委托。

无论计算是否正在运行,都可以多次调用 SetHeader(ProgressHeader, Action<IProgressEntry>) (或无) 。 由于同步,计算不应拒绝对“旧” fillAction 委托的调用,即使在提供新委托之后也是如此。

StartProgressChannel(String)

为名为 name 的计算创建进度通道。

(继承自 IProgressChannelProvider)

适用于