Idioma

IProgressChannel Interface

Definição

Uma interface comum para relatórios de progresso. Espera-se que a interface do canal de progresso seja usada de apenas um thread.

Fluxo de trabalho com suporte:

  1. Crie o canal por meio de StartProgressChannel(String).
  2. Chame SetHeader(ProgressHeader, Action<IProgressEntry>) quantas vezes desejar (incluindo 0). Cada chamada para SetHeader(ProgressHeader, Action<IProgressEntry>) substituir a anterior.
  3. Relatar pontos de verificação (0 ou mais) chamando Checkpoint(Nullable<Double>[]).
  4. Repita as etapas 2-3 sempre que necessário.
  5. Descarte o canal.
public interface IProgressChannel : IDisposable, Microsoft.ML.Runtime.IProgressChannelProvider
type IProgressChannel = interface
    interface IProgressChannelProvider
    interface IDisposable
Public Interface IProgressChannel
Implements IDisposable, IProgressChannelProvider
Implementações

Métodos

Nome Description
Checkpoint(Nullable<Double>[])

Envie uma entrada de 'ponto de verificação'. Essas entradas têm a garantia de serem entregues ao ouvinte de progresso, se estiverem interessadas. Normalmente, isso conteria algumas métricas intermediárias, que são calculadas apenas em determinados momentos ('pontos de verificação') da computação.

Por exemplo, o SDCA pode relatar um ponto de verificação sempre que calcula a perda ou o LBFGS pode relatar um ponto de verificação a cada iteração.

O único parâmetro é valuesinterpretado da seguinte maneira:

  • Os primeiros itens MetricNames.Length, se presentes, são métricas.
  • Os itens ProgressNames.Length subsequentes, se presentes, são unidades de progresso.
  • Os itens progressnames.length subsequentes, se presentes, são limites de progresso.
  • Se houver mais valores, uma exceção será gerada.
SetHeader(ProgressHeader, Action<IProgressEntry>)

Configure a estrutura de relatórios:

  • Defina o "cabeçalho" dos relatórios de progresso, definindo quais unidades de progresso e métricas serão relatadas.
  • Forneça um delegado thread-safe a ser invocado sempre que alguém precisar saber o progresso.

É aceitável chamar SetHeader(ProgressHeader, Action<IProgressEntry>) várias vezes (ou nenhuma), independentemente de o cálculo ser executado ou não. Devido à sincronização, a computação não deve negar chamadas aos delegados 'antigos' fillAction , mesmo depois que um novo for fornecido.

StartProgressChannel(String)

Criar um canal de progresso para uma computação chamada name.

(Herdado de IProgressChannelProvider)

Aplica-se a