Język

IProgressChannel Interfejs

Definicja

Wspólny interfejs raportowania postępu. Oczekuje się, że interfejs kanału postępu jest używany tylko z jednego wątku.

Obsługiwany przepływ pracy:

  1. Utwórz kanał za pomocą polecenia StartProgressChannel(String).
  2. Wywołaj SetHeader(ProgressHeader, Action<IProgressEntry>) dowolną liczbę razy (w tym 0). Każde wywołanie SetHeader(ProgressHeader, Action<IProgressEntry>) zastępuje poprzednie.
  3. Punkty kontrolne raportu (co najmniej 0) przez wywołanie metody Checkpoint(Nullable<Double>[]).
  4. Powtórz kroki 2–3 tak często, jak to konieczne.
  5. Usuwanie kanału.
public interface IProgressChannel : IDisposable, Microsoft.ML.Runtime.IProgressChannelProvider
type IProgressChannel = interface
    interface IProgressChannelProvider
    interface IDisposable
Public Interface IProgressChannel
Implements IDisposable, IProgressChannelProvider
Implementuje

Metody

Nazwa Opis
Checkpoint(Nullable<Double>[])

Prześlij wpis "checkpoint". Te wpisy są gwarantowane do dostarczenia do odbiornika postępu, jeśli jest zainteresowany. Zazwyczaj zawierałoby to pewne metryki pośrednie, które są obliczane tylko w określonych momentach (punktach kontrolnych) obliczeń.

Na przykład sdCA może zgłaszać punkt kontrolny za każdym razem, gdy oblicza utratę, lub LBFGS może zgłosić punkt kontrolny każdej iteracji.

Jedyny parametr , valuesjest interpretowany w następujący sposób:

  • Pierwsze elementy MetricNames.Length, jeśli są obecne, to metryki.
  • Kolejne elementy ProgressNames.Length, jeśli są obecne, to jednostki postępu.
  • Kolejne elementy ProgressNames.Length, jeśli są obecne, są limitami postępu.
  • Jeśli więcej wartości pozostanie, zostanie zgłoszony wyjątek.
SetHeader(ProgressHeader, Action<IProgressEntry>)

Konfigurowanie struktury raportowania:

  • Ustaw "nagłówek" raportów postępu, definiując, które jednostki postępu i metryki mają być zgłaszane.
  • Podaj delegata bezpiecznego wątkowo, który ma być wywoływany zawsze, gdy każdy musi znać postęp.

Można wywołać SetHeader(ProgressHeader, Action<IProgressEntry>) wiele razy (lub nie), niezależnie od tego, czy obliczenie jest uruchomione, czy nie. Ze względu na synchronizację obliczenia nie powinny odrzucać wywołań "starych" fillAction delegatów nawet po udostępnieniu nowego.

StartProgressChannel(String)

Utwórz kanał postępu dla obliczeń o nazwie name.

(Odziedziczone po IProgressChannelProvider)

Dotyczy