IProgressChannel Interfaz

Definición

Una interfaz común para los informes de progreso. Se espera que la interfaz del canal de progreso se use solo desde un subproceso.

Flujo de trabajo admitido:

  1. Cree el canal a través de StartProgressChannel(String).
  2. Llame a SetHeader(ProgressHeader, Action<IProgressEntry>) tantas veces como desee (incluido 0). Cada llamada a sustituye a SetHeader(ProgressHeader, Action<IProgressEntry>) la anterior.
  3. Notificar puntos de control (0 o más) mediante una llamada a Checkpoint(Nullable<Double>[]).
  4. Repita los pasos del 2 al 3 con la frecuencia necesaria.
  5. Elimine el canal.
public interface IProgressChannel : IDisposable, Microsoft.ML.Runtime.IProgressChannelProvider
type IProgressChannel = interface
    interface IProgressChannelProvider
    interface IDisposable
Public Interface IProgressChannel
Implements IDisposable, IProgressChannelProvider
Implementaciones

Métodos

Checkpoint(Nullable<Double>[])

Envíe una entrada de "punto de control". Se garantiza que estas entradas se entreguen al agente de escucha de progreso, si está interesado. Normalmente, esto contendrá algunas métricas intermedias, que solo se calculan en determinados momentos ("puntos de control") del cálculo.

Por ejemplo, SDCA puede notificar un punto de control cada vez que calcula la pérdida, o LBFGS puede notificar un punto de control cada iteración.

El único parámetro, values, se interpreta de la siguiente manera:

  • Los primeros elementos MetricNames.Length, si están presentes, son métricas.
  • Los elementos ProgressNames.Length posteriores, si están presentes, son unidades de progreso.
  • Los elementos ProgressNames.Length posteriores, si están presentes, son límites de progreso.
  • Si quedan más valores, se produce una excepción.
SetHeader(ProgressHeader, Action<IProgressEntry>)

Configure la estructura de informes:

  • Establezca el "encabezado" de los informes de progreso, definiendo qué unidades de progreso y métricas se notificarán.
  • Proporcione un delegado seguro para subprocesos que se invocará siempre que alguien necesite conocer el progreso.

Es aceptable llamar SetHeader(ProgressHeader, Action<IProgressEntry>) varias veces (o ninguna), independientemente de si el cálculo se está ejecutando o no. Debido a la sincronización, el cálculo no debe denegar las llamadas a los delegados "antiguos", fillAction incluso después de proporcionar uno nuevo.

StartProgressChannel(String)

Cree un canal de progreso para un cálculo denominado name.

(Heredado de IProgressChannelProvider)

Se aplica a