Share via


IProgressChannel Rozhraní

Definice

Společné rozhraní pro generování sestav průběhu. Očekává se, že rozhraní kanálu průběhu se používá pouze z jednoho vlákna.

Podporovaný pracovní postup:

  1. Vytvořte kanál přes StartProgressChannel(String).
  2. Volat SetHeader(ProgressHeader, Action<IProgressEntry>) tolikrát, kolik potřebujete (včetně 0). Každé volání nahrazuje SetHeader(ProgressHeader, Action<IProgressEntry>) předchozí.
  3. Kontrolní body sestavy (0 nebo více) voláním Checkpoint(Nullable<Double>[]).
  4. Opakujte kroky 2 až 3 podle potřeby.
  5. Odstraňte kanál.
public interface IProgressChannel : IDisposable, Microsoft.ML.Runtime.IProgressChannelProvider
type IProgressChannel = interface
    interface IProgressChannelProvider
    interface IDisposable
Public Interface IProgressChannel
Implements IDisposable, IProgressChannelProvider
Implementuje

Metody

Checkpoint(Nullable<Double>[])

Odešlete položku kontrolního bodu. Tyto položky jsou zaručeny, že se doručí do naslouchacího procesu průběhu, pokud je to zajímá. Obvykle by to obsahovalo některé zprostředkující metriky, které se vypočítají jenom v určitých momentech (kontrolní body).

SDCA může například nahlásit kontrolní bod pokaždé, když vypočítá ztrátu, nebo LBFGS může hlásit kontrolní bod každé iterace.

Jediný parametr, valuesje interpretován následujícím způsobem:

  • První položky MetricNames.Length, pokud jsou k dispozici, jsou metriky.
  • Další položky ProgressNames.Length, pokud jsou k dispozici, jsou jednotky průběhu.
  • Další položky ProgressNames.Length, pokud jsou k dispozici, jsou limity průběhu.
  • Pokud zůstanou nějaké další hodnoty, vyvolá se výjimka.
SetHeader(ProgressHeader, Action<IProgressEntry>)

Nastavení struktury vytváření sestav:

  • Nastavte hlavičku sestav průběhu a definujte, které jednotky průběhu a metriky se budou hlásit.
  • Zadejte delegáta bezpečného pro vlákno, který se má vyvolat pokaždé, když někdo potřebuje znát průběh.

Je přijatelné volat SetHeader(ProgressHeader, Action<IProgressEntry>) vícekrát (nebo žádné), bez ohledu na to, jestli je výpočet spuštěný nebo ne. Vzhledem k synchronizaci by výpočet neměl odepřít volání "starých" fillAction delegátů ani po poskytnutí nového delegáta.

StartProgressChannel(String)

Vytvořte kanál průběhu pro výpočet pojmenovaný name.

(Zděděno od IProgressChannelProvider)

Platí pro