Langue

IProgressChannel Interface

Définition

Interface commune pour la création de rapports d’avancement. On s’attend à ce que l’interface du canal de progression soit utilisée à partir d’un seul thread.

Flux de travail pris en charge :

  1. Créez le canal via StartProgressChannel(String).
  2. Appelez SetHeader(ProgressHeader, Action<IProgressEntry>) autant de fois que vous le souhaitez (y compris 0). Chaque appel pour SetHeader(ProgressHeader, Action<IProgressEntry>) remplacer le précédent.
  3. Signaler des points de contrôle (0 ou plus) en appelant Checkpoint(Nullable<Double>[]).
  4. Répétez les étapes 2 à 3 aussi souvent que nécessaire.
  5. Supprimez le canal.
public interface IProgressChannel : IDisposable, Microsoft.ML.Runtime.IProgressChannelProvider
type IProgressChannel = interface
    interface IProgressChannelProvider
    interface IDisposable
Public Interface IProgressChannel
Implements IDisposable, IProgressChannelProvider
Implémente

Méthodes

Nom Description
Checkpoint(Nullable<Double>[])

Envoyez une entrée « point de contrôle ». Ces entrées sont garanties d’être remises à l’écouteur de progression, s’il est intéressé. En règle générale, cela contient certaines métriques intermédiaires, qui sont calculées uniquement à certains moments ('points de contrôle') du calcul.

Par exemple, SDCA peut signaler un point de contrôle chaque fois qu’il calcule la perte, ou LBFGS peut signaler un point de contrôle chaque itération.

Le seul paramètre, est valuesinterprété de la manière suivante :

  • Les éléments MetricNames.Length, le cas échéant, sont des métriques.
  • Les éléments ProgressNames.Length suivants, le cas échéant, sont des unités de progression.
  • Les éléments ProgressNames.Length suivants, le cas échéant, sont des limites de progression.
  • Si d’autres valeurs restent, une exception est levée.
SetHeader(ProgressHeader, Action<IProgressEntry>)

Configurez la structure de création de rapports :

  • Définissez l'« en-tête » des rapports de progression, en définissant les unités de progression et les métriques à signaler.
  • Fournissez un délégué thread-safe à appeler chaque fois que tout le monde doit connaître la progression.

Il est acceptable d’appeler SetHeader(ProgressHeader, Action<IProgressEntry>) plusieurs fois (ou aucun), que le calcul soit en cours d’exécution ou non. En raison de la synchronisation, le calcul ne doit pas refuser les appels aux délégués « anciens », fillAction même une fois qu’un nouveau délégué est fourni.

StartProgressChannel(String)

Créez un canal de progression pour un calcul nommé name.

(Hérité de IProgressChannelProvider)

S’applique à