Unitevi a noi praticamente alle donne nel Simposio sulla ML 19 ottobre Registrarsi

tensorflow :: servendo:: LoaderHarness

#include <loader_harness.h>

LoaderHarness è un widget che il Manager usa per aggrapparsi e parlare con un Loader mentre lo possiede.

Sommario

Tiene traccia dello stato generale di un Servable in modo tale che Manager possa determinare quali transizioni di stato eseguire in quali orari.

Un'implementazione del manager può anche aggiungere uno stato aggiuntivo a ogni cablaggio. Ad esempio, un manager potrebbe inserire qui ACL o metadati del ciclo di vita. La proprietà è mantenuta dall'imbracatura.

Questa classe è thread-safe.

Costruttori e distruttori

LoaderHarness (const ServableId & id, std::unique_ptr< Loader > loader, const Options & options)
LoaderHarness (const ServableId & id, std::unique_ptr< Loader > loader, std::unique_ptr< T > additional_state, const Options & options)
Costruttore per creare un'imbracatura con stato aggiuntivo, di cui ha bisogno un manager.
~LoaderHarness ()
È legale distruggere se e solo se lo stato corrente è uno tra kNew, kDisabled o kError.

Tipi pubblici

State {
kNew ,
kLoadRequested ,
kLoadApproved ,
kLoading ,
kReady ,
kUnloadRequested ,
kQuiescing ,
kQuiesced ,
kUnloading ,
kDisabled ,
kError
}
enum
Stato del servable sottostante, dal punto di vista di LoaderHarness e ai fini della comunicazione tra esso e un Manager .

Funzioni pubbliche

DoneQuiescing ()
Status
Passa lo stato a kQuiesced, il che significa che non ci sono più handle attivi per questo servable disponibile nel frontend.
Error (const Status & status)
void
Passa lo stato a kError e invoca 'options_.error_callback'.
Load ()
Status
Passa a kLoading, delega a Servable :: Load (), quindi passa a kReady se Load () ha successo, oppure a kError (e invoca 'options_.
LoadApproved ()
Status
Transizioni a kLoadApproved.
LoadRequested ()
Status
Passa lo stato del cablaggio a kLoadRequested se e solo se il suo stato corrente è kNew.
StartQuiescing ()
Status
Passa lo stato a kQuiescing, il che significa che non vorremmo dare più handle a questo servable.
Unload ()
Status
Transizioni a kUnloading, delegati a Servable :: Unload (), quindi transizioni a kDisabled quando Unload () è terminato.
UnloadRequested ()
Status
Passa lo stato del cablaggio a kUnloadRequested se e solo se il suo stato corrente è kReady.
additional_state ()
T *
Ottiene lo stato aggiuntivo.
cancel_load_retry ()
bool
id () const
ServableId
Restituisce l'identificatore del Servable sottostante.
loader () const
Restituisce un puntatore al caricatore avvolto.
loader_state_snapshot ()
ServableStateSnapshot< T >
Restituisce l'istantanea dello stato generale corrente del Servable sottostante.
loader_state_snapshot () const
ServableStateSnapshot< std::nullptr_t >
set_cancel_load_retry (bool value)
void
Annulla il nuovo tentativo di caricamento del servable.
state ()
Restituisce lo stato corrente del Servable sottostante.
status ()
Status
Se qualcosa è andato storto con questo servable.

Funzioni statiche pubbliche

StateDebugString ( State state)
string

Structs

tensorflow :: serving :: LoaderHarness :: Opzioni

Opzioni per configurare un LoaderHarness .

Tipi pubblici

Stato

 State

Stato del servable sottostante, dal punto di vista di LoaderHarness e ai fini della comunicazione tra esso e un Manager .

Non è equivalente agli stati servable semantici in servable_state.h.

Transizioni valide: kNew> kLoading> kReady> kQuiescing> kQuiesced> kUnloading> kDisabled nonché: any_state> kError.

Proprietà
kDisabled

'loader _-> Unload () ' è terminato.

kError

Si è verificato un errore durante 'loader _-> Load () ' o all'esterno del cablaggio (ed è stato segnalato al cablaggio tramite una chiamata a Error () ).

kLoadApproved

Il servable è stato approvato per il caricamento, ad es

risorse sono state messe da parte per questo.

kLoadRequested

Al manager è stato richiesto di caricare questo servable.

kLoading

'loader _-> Load () ' è stato chiamato.

kNew

Stato iniziale.

kQuiesced

Il pubblicabile è stato reso non disponibile per la pubblicazione.

kQuiescing

Il pubblicabile verrà reso non disponibile per la pubblicazione.

kReady

'loader _-> Load () ' è riuscito.

kUnloadRequested

Al manager è stato richiesto di scaricare questo servable.

kUnloading

'loader _-> Unload () ' è stato chiamato.

Funzioni pubbliche

FattoQuiescing

Status DoneQuiescing()

Passa lo stato a kQuiesced, il che significa che non ci sono più handle attivi per questo servable disponibile nel frontend.

A questo punto possiamo scaricare questo oggetto.

RICHIEDE: Lo stato è kQuiescing quando viene chiamato. Altrimenti DCHECK-fallisce, passa allo stato kError e invoca 'options_.error_callback'.

Errore

void Error(
  const Status & status
)

Passa lo stato a kError e invoca 'options_.error_callback'.

Caricare

Status Load()

Passa a kLoading, delega a Servable :: Load (), quindi passa a kReady se Load () ha successo, oppure a kError (e invoca 'options_.

error_callback ') se Load () fallisce. Questa chiamata potrebbe richiedere molto tempo.

Riproviamo il Servable :: Load () in base alle opzioni impostate durante la costruzione di questa classe. Smettiamo di riprovare e ci arrendiamo se 1. abbiamo raggiunto max_num_load_retries o, 2. se cancel_load () è impostato su true.

RICHIEDE: Lo stato è kLoadApproved quando viene chiamato. Altrimenti DCHECK-fallisce, passa allo stato kError e invoca 'options_.error_callback'.

LoadApproved

Status LoadApproved()

Transizioni a kLoadApproved.

RICHIEDE: Lo stato è kLoadRequested quando viene chiamato. Altrimenti DCHECK-fallisce, passa allo stato kError e invoca 'options_.error_callback'.

LoadRequested

Status LoadRequested()

Passa lo stato del cablaggio a kLoadRequested se e solo se il suo stato corrente è kNew.

Il test-and-change viene eseguito a livello di transazione, quindi questo metodo può essere utilizzato per garantire che al massimo una richiesta Load () possa procedere.

LoaderHarness

 LoaderHarness(
  const ServableId & id,
  std::unique_ptr< Loader > loader,
  const Options & options
)

LoaderHarness

 LoaderHarness(
  const ServableId & id,
  std::unique_ptr< Loader > loader,
  std::unique_ptr< T > additional_state,
  const Options & options
)

Costruttore per creare un'imbracatura con stato aggiuntivo, di cui ha bisogno un manager.

StartQuiescing

Status StartQuiescing()

Passa lo stato a kQuiescing, il che significa che non vorremmo dare più handle a questo servable.

RICHIEDE: Lo stato è kUnloadRequested quando viene chiamato. Altrimenti DCHECK-fallisce, passa allo stato kError e invoca 'options_.error_callback'.

Scaricare

Status Unload()

Transizioni a kUnloading, delegati a Servable :: Unload (), quindi transizioni a kDisabled quando Unload () è fatto.

RICHIEDE: Lo stato è kQuiesced quando viene chiamato. Altrimenti DCHECK-fallisce, passa allo stato kError e invoca 'options_.error_callback'.

UnloadRequested

Status UnloadRequested()

Passa lo stato del cablaggio a kUnloadRequested se e solo se il suo stato corrente è kReady.

Il test-and-change viene eseguito a livello di transazione, quindi questo metodo può essere utilizzato per garantire che al massimo una richiesta Load () possa procedere.

stato_addizionale

T * additional_state()

Ottiene lo stato aggiuntivo.

Restituisce nullptr se il tipo non corrisponde o se non è stato impostato.

cancel_load_retry

bool cancel_load_retry()

id

ServableId id() const 

Restituisce l'identificatore del Servable sottostante.

caricatore

Loader * loader() const 

Restituisce un puntatore al caricatore avvolto.

La proprietà rimane con questa classe.

loader_state_snapshot

ServableStateSnapshot< T > loader_state_snapshot()

Restituisce l'istantanea dello stato generale corrente del Servable sottostante.

loader_state_snapshot

ServableStateSnapshot< std::nullptr_t > loader_state_snapshot() const 

set_cancel_load_retry

void set_cancel_load_retry(
  bool value
)

Annulla il nuovo tentativo di caricamento del servable.

Questo è il massimo sforzo e non previene un Load () che è già in corso, ma solo le chiamate successive.

Se i tentativi vengono annullati, il servable entra in uno stato dipendente dall'ultimo Load () chiamato su di esso. Se l'ultimo Load () ha avuto successo, sarà nello stato kReady, altrimenti in kError.

stato

State state()

Restituisce lo stato corrente del Servable sottostante.

stato

Status status()

Se qualcosa è andato storto con questo servable.

Se lo stato è kError, non sarà corretto. In caso contrario, l'errore potrebbe essere qualcosa che si è verificato in un Source o SourceAdapter , nel Loader , nel Manager o altrove. Tutti gli errori relativi al servable sono riportati qui, indipendentemente dall'origine.

~ LoaderHarness

 ~LoaderHarness()

È legale distruggere se e solo se lo stato corrente è uno tra kNew, kDisabled o kError.

Il controllo fallisce se violato.

Funzioni statiche pubbliche

StateDebugString

string StateDebugString(
  State state
)