Ajuda a proteger a Grande Barreira de Corais com TensorFlow em Kaggle Junte Desafio

tensorflow :: servindo :: Fonte

Esta é uma classe abstrata.

#include <source.h>

Uma abstração para um módulo que origina servables para carregar ou, mais precisamente, lida com dados que podem ser usados ​​para carregar esses servables.

Resumo

Exemplos de tais identificadores de dados são:

  • um caminho do sistema de arquivos para um mapa de vocabulário serializado
  • um identificador para um RPC de entrada que especifica um modelo aprendido por máquina para carregar
  • a Loader (consulte loader.h ) Os identificadores de dados são geralmente considerados pequenos.

Uma fonte monitora alguns recursos externos (por exemplo, sistema de arquivos, chamadas RPC) para descobrir sobre novos servables e / ou novas versões de servables e / ou a necessidade de descarregar versões servable. Ele usa o retorno de chamada fornecido para instruir um módulo de destino (por exemplo, AspiredVersionsManager ) que versão (ões) de um determinado serviço carregar. Além disso, dependendo da semântica do módulo de destino, a origem instrui implicitamente quais devem ser descarregados, omitindo esses servables.

Um caso comum é que uma Fonte emita versões para exatamente um serviço. Um caso ainda mais simples é que um serviço tem uma versão única e estática para o tempo de vida do servidor.

As fontes podem abrigar o estado que é compartilhado entre vários servables emitidos, por exemplo

  1. Um pool de thread compartilhado ou outro recurso usado por vários servables.
  2. Uma estrutura de dados somente leitura compartilhada que vários servables usam, para evitar a sobrecarga de tempo e espaço de replicar a estrutura de dados em cada instância servable. O estado compartilhado cujo tempo de inicialização e tamanho é insignificante (por exemplo, pools de thread) pode ser criado avidamente pela fonte, que então incorpora um ponteiro a ele em cada item ServableData emitido. A criação de um estado compartilhado caro ou grande deve ser adiada para a primeira chamada Loader :: Load () aplicável, ou seja, controlada pelo gerenciador. Simetricamente, a chamada Loader :: Unload () para o serviço final usando o estado compartilhado caro / grande deve destruí-lo.

Construtores e Destruidores

~Source ()

Tipos públicos

AspiredVersionsCallback usando
std::function< void(const StringPiece servable_name, std::vector< ServableData< T >> versions)>
Um retorno de chamada para uma Fonte para fornecer versão (ões) de um serviço para um Destino, a ser carregado.

Funções públicas

SetAspiredVersionsCallback ( AspiredVersionsCallback callback)=0
virtual void
Fornece um AspiredVersionsCallback para usar. Pode ser chamado no máximo uma vez.

Tipos públicos

AspiredVersionsCallback

std::function< void(const StringPiece servable_name, std::vector< ServableData< T >> versions)> AspiredVersionsCallback

Um retorno de chamada para uma Fonte para fornecer versão (ões) de um serviço para um Destino, a ser carregado.

Uma única chamada de retorno de chamada pertence a um único fluxo de serviço (fornecido por 'servable_name'). Todas as versões fornecidas em uma chamada devem ser para o servable identificado em 'servable_name'. As invocações em diferentes fluxos de serviço são ortogonais umas às outras.

Várias invocações podem fornecer objetos de dados de serviço com ids idênticos (ou seja, mesmo nome e versão de serviço). Esses objetos de dados servíveis são tratados como semanticamente equivalentes. O destinatário acabará por reter um e descartar o resto.

Se uma versão de serviço V for fornecida em uma primeira chamada e, subsequentemente, omitida em uma segunda chamada, a implicação de omitir V depende da semântica do Destino do retorno de chamada. Certos alvos interpretarão a omissão de V como uma instrução implícita para descarregar V. Cada alvo deve documentar sua semântica a esse respeito.

Funções públicas

SetAspiredVersionsCallback

virtual void SetAspiredVersionsCallback(
  AspiredVersionsCallback callback
)=0

Fornece um AspiredVersionsCallback para usar. Pode ser chamado no máximo uma vez.

~ Fonte

virtual  ~Source()=default