Condividi tramite


IProgressChannel Interfaccia

Definizione

Interfaccia comune per la creazione di report sullo stato. È previsto che l'interfaccia del canale di stato venga usata da un solo thread.

Flusso di lavoro supportato:

  1. Creare il canale tramite StartProgressChannel(String).
  2. Chiamare SetHeader(ProgressHeader, Action<IProgressEntry>) tutte le volte desiderate (incluso 0). Ogni chiamata a SetHeader(ProgressHeader, Action<IProgressEntry>) sostituisce quella precedente.
  3. Segnalare i checkpoint (0 o più) chiamando Checkpoint(Nullable<Double>[]).
  4. Ripetere i passaggi da 2 a 3 il più spesso necessario.
  5. Eliminare il canale.
public interface IProgressChannel : IDisposable, Microsoft.ML.Runtime.IProgressChannelProvider
type IProgressChannel = interface
    interface IProgressChannelProvider
    interface IDisposable
Public Interface IProgressChannel
Implements IDisposable, IProgressChannelProvider
Implementazioni

Metodi

Checkpoint(Nullable<Double>[])

Inviare una voce "checkpoint". Queste voci devono essere recapitate al listener di stato, se è interessato. In genere, contiene alcune metriche intermedie, calcolate solo in determinati momenti ("checkpoint") del calcolo.

Ad esempio, SDCA può segnalare un checkpoint ogni volta che calcola la perdita o LBFGS può segnalare un checkpoint ogni iterazione.

L'unico parametro, values, viene interpretato nel modo seguente:

  • Gli elementi First MetricNames.Length, se presenti, sono metriche.
  • Gli elementi ProgressNames.Length successivi, se presenti, sono unità di stato.
  • Gli elementi ProgressNames.Length successivi, se presenti, sono limiti di stato.
  • Se rimangono altri valori, viene generata un'eccezione.
SetHeader(ProgressHeader, Action<IProgressEntry>)

Configurare la struttura dei report:

  • Impostare l'intestazione dei report di stato, definendo quali unità di stato e metriche verranno segnalate.
  • Fornire un delegato thread-safe da richiamare ogni volta che chiunque deve conoscere lo stato di avanzamento.

È accettabile chiamare SetHeader(ProgressHeader, Action<IProgressEntry>) più volte (o nessuno), indipendentemente dal fatto che il calcolo sia in esecuzione o meno. A causa della sincronizzazione, il calcolo non deve negare le chiamate ai delegati "old" fillAction anche dopo che ne viene fornito uno nuovo.

StartProgressChannel(String)

Creare un canale di stato per un calcolo denominato name.

(Ereditato da IProgressChannelProvider)

Si applica a