Partager via


IProgressChannel Interface

Définition

Interface commune pour la création de rapports de progression. Il est attendu 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 autant de fois que vous le souhaitez SetHeader(ProgressHeader, Action<IProgressEntry>) (y compris 0). Chaque appel à SetHeader(ProgressHeader, Action<IProgressEntry>) remplacer le précédent.
  3. Rapports de 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

Checkpoint(Nullable<Double>[])

Soumettez une entrée de « 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 contiendrait certaines métriques intermédiaires, qui ne sont calculées qu’à 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, valuesest interprété de la manière suivante :

  • Les premiers é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 qui seront signalées.
  • Fournissez un délégué thread-safe à appeler chaque fois que toute personne 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 est fourni.

StartProgressChannel(String)

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

(Hérité de IProgressChannelProvider)

S’applique à