tensorflow :: servicio:: Fuente

Esto es una clase abstracta.

#include <source.h>

Una abstracción para un módulo que genera servicios para cargar o, más precisamente, maneja los datos que se pueden usar para cargar esos servicios.

Resumen

Ejemplos de tales identificadores de datos son:

  • una ruta del sistema de archivos a un mapa de vocabulario serializado
  • un identificador para un RPC entrante que especifica un modelo de aprendizaje automático para cargar
  • una cargadora (ver loader.h ) Las asas de datos se asume generalmente para ser pequeño.

Una Fuente supervisa algunos (por ejemplo, sistema de archivos, llamadas RPC) de recursos externos para averiguar sobre los nuevos servables y / o nuevas versiones de servables y / o la necesidad de descargar versiones se pueden publicar y. Utiliza la devolución de llamada proporcionado para instruir a un módulo de destino (por ejemplo AspiredVersionsManager ) qué versión (s) de un servable dado a carga. Además, dependiendo de la semántica del módulo de destino, la Fuente implícitamente que instruye cuáles descarga al omitir esos servables.

Un caso común es que una fuente emite versiones para exactamente un servable. Un caso aún más simple es que un servidor tiene una única versión estática durante la vida útil del servidor.

Las fuentes pueden albergar el estado que se comparte entre múltiples servidores emitidos, por ejemplo

  1. Un grupo de subprocesos compartidos u otro recurso que utilizan varios servidores.
  2. Una estructura de datos compartida de solo lectura que utilizan múltiples servidores, para evitar la sobrecarga de tiempo y espacio de replicar la estructura de datos en cada instancia de servidor. El estado compartido cuyo tiempo de inicialización y tamaño es insignificante (por ejemplo, grupos de subprocesos) puede ser creado con entusiasmo por la fuente, que luego incrusta un puntero en cada elemento de ServibleData emitido. Creación de estado compartido caros o grande debe diferirse hasta el primer aplicable cargador :: Load () llamada, es decir, gobernada por el gerente. Simétricamente, el cargador :: Unload () llamada al servable final utilizando el estado compartido caro / grande debe destruirla.

Constructores y Destructores

~Source ()

Tipos públicos

AspiredVersionsCallback utilizando
std::function< void(const StringPiece servable_name, std::vector< ServableData< T >> versions)>
Una devolución de llamada para una Fuente a la versión de suministro (s) de un servable a un objetivo, se va a cargar.

Funciones publicas

SetAspiredVersionsCallback ( AspiredVersionsCallback callback)=0
virtual void
Proporciona un AspiredVersionsCallback para usar. Se puede llamar como máximo una vez.

Tipos públicos

Versiones aspiradasDevolución de llamada

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

Una devolución de llamada para una Fuente a la versión de suministro (s) de un servable a un objetivo, se va a cargar.

Una única invocación de la devolución de llamada pertenece a un único flujo de servicio (proporcionado por 'servable_name'). Todas las versiones suministradas en una llamada deben ser para el servicio identificado en 'servable_name'. Las invocaciones en diferentes flujos de servicio son ortogonales entre sí.

Múltiples invocaciones pueden proporcionar objetos de datos de servicio con identificaciones idénticas (es decir, mismo nombre y versión de servicio). Dichos objetos de datos útiles se tratan como semánticamente equivalentes. El destinatario finalmente conservará uno y desechará el resto.

Si se proporciona una versión de servicio V en una primera invocación y, posteriormente, se omite en una segunda invocación, la implicación de omitir V depende de la semántica del destino de la devolución de llamada. Ciertos Objetivos interpretarán la omisión de V como una instrucción implícita para descargar V. Cada Objetivo debe documentar su semántica a este respecto.

Funciones publicas

Establecer versiones aspiradas Devolución de llamada

virtual void SetAspiredVersionsCallback(
  AspiredVersionsCallback callback
)=0

Proporciona un AspiredVersionsCallback para usar. Se puede llamar como máximo una vez.

~Fuente

virtual  ~Source()=default