語言

IProgressChannel 介面

定義

一個用於進度報告的通用介面。 預期進度通道介面僅從一個執行緒使用。

支援工作流程:

  1. 透過 StartProgressChannel(String)建立頻道。
  2. 想 SetHeader(ProgressHeader, Action<IProgressEntry>) 打幾次電話就打幾次(包括0次)。 每一次的呼籲 SetHeader(ProgressHeader, Action<IProgressEntry>) 都會優先於前一次。
  3. 請致電 Checkpoint(Nullable<Double>[])。
  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
實作

方法

名稱 Description
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)

適用於