La operación serializa los mensajes de protobuf proporcionados en los tensores de entrada.
Los tipos de tensores en "valores" deben coincidir con el esquema de los campos especificados en "nombres_de_campo". Todos los tensores en "valores" deben tener un prefijo de forma común, forma_lote .
El tensor de "tamaños" especifica los recuentos de repeticiones para cada campo. El recuento de repeticiones (última dimensión) de cada tensor en "valores" debe ser mayor o igual al recuento de repeticiones correspondiente en "tamaños".
Se debe proporcionar un nombre `message_type` para dar contexto a los nombres de los campos. El descriptor del mensaje real se puede buscar en el grupo de descriptores vinculados o en un nombre de archivo proporcionado por la persona que llama usando el atributo `descriptor_source`.
En su mayor parte, el mapeo entre los tipos de campo Proto y los tipos de TensorFlow es sencillo. Sin embargo, existen algunos casos especiales:
- Un campo proto que contiene un submensaje o grupo solo se puede convertir a `DT_STRING` (el submensaje serializado). Esto es para reducir la complejidad de la API. La cadena resultante se puede utilizar como entrada para otra instancia de la operación decode_proto.
- TensorFlow carece de soporte para números enteros sin signo. Las operaciones representan los tipos uint64 como `DT_INT64` con el mismo patrón de bits en complemento a dos (la forma obvia). Los valores int32 sin signo se pueden representar exactamente especificando el tipo `DT_INT64`, o usando complemento a dos si la persona que llama especifica `DT_INT32` en el atributo `output_types`.
El atributo `descriptor_source` selecciona la fuente de los descriptores de protocolo para consultar al buscar `message_type`. Esto podría ser:
- Una cadena vacía o "local://", en cuyo caso se crean descriptores de protocolo para definiciones de proto C++ (no Python) vinculadas al binario.
- Un archivo, en cuyo caso los descriptores de protocolo se crean a partir del archivo, que se espera que contenga un `FileDescriptorSet` serializado como una cadena. NOTA: Puede crear un archivo `descriptor_source` usando las opciones `--descriptor_set_out` y `--include_imports` para el compilador de protocolos `protoc`.
- Un "byte://
Clases anidadas
clase | EncodeProto.Opciones | Atributos opcionales para EncodeProto |
Métodos públicos
Salida <Cadena> | como salida () Devuelve el identificador simbólico de un tensor. |
Salida <Cadena> | bytes () Tensor de protos serializados con forma `batch_shape`. |
EncodeProto estático | crear (alcance alcance , tamaños de operando <entero>, valores iterables < operando <?>>, lista <cadena> nombres de campo, tipo de mensaje de cadena, opciones... opciones) Método de fábrica para crear una clase que envuelve una nueva operación EncodeProto. |
EncodeProto.Options estático | descriptorSource (Cadena descriptorSource) |
Métodos heredados
Métodos públicos
Salida pública <Cadena> comoSalida ()
Devuelve el identificador simbólico de un tensor.
Las entradas a las operaciones de TensorFlow son salidas de otra operación de TensorFlow. Este método se utiliza para obtener un identificador simbólico que representa el cálculo de la entrada.
creación estática pública de EncodeProto (alcance del alcance , tamaños de operando <entero>, valores iterables < operando <?>>, lista <cadena> nombres de campo, tipo de mensaje de cadena, opciones... opciones)
Método de fábrica para crear una clase que envuelve una nueva operación EncodeProto.
Parámetros
alcance | alcance actual |
---|---|
tamaños | Tensor de int32 con forma `[batch_shape, len(field_names)]`. |
valores | Lista de tensores que contienen valores para el campo correspondiente. |
nombres de campo | Lista de cadenas que contienen nombres de protocampos. |
Tipo de mensaje | Nombre del tipo de mensaje proto a decodificar. |
opciones | lleva valores de atributos opcionales |
Devoluciones
- una nueva instancia de EncodeProto