DecodeProto

DecodeProto de clase final pública

La operación extrae campos de un mensaje de búfer de protocolo serializado en tensores.

La operación `decode_proto` extrae campos de un mensaje de búfer de protocolo serializado en tensores. Los campos en `field_names` se decodifican y se convierten a los correspondientes` output_types` si es posible.

Se debe proporcionar un nombre `message_type` para dar contexto a los nombres de los campos. El descriptor de mensaje real se puede buscar en el conjunto de descriptores vinculados o en un nombre de archivo proporcionado por la persona que llama utilizando el atributo `descriptor_source`.

Cada tensor de salida es un tensor denso. Esto significa que está acolchado para contener la mayor cantidad de elementos repetidos que se ven en el minibatch de entrada. (La forma también está acolchada por uno para evitar dimensiones de tamaño cero). Los recuentos de repeticiones reales para cada ejemplo en el minibatch se pueden encontrar en la salida de "tamaños". En muchos casos, la salida de `decode_proto` se alimenta inmediatamente a tf.squeeze si los valores perdidos no son una preocupación. Cuando utilice tf.squeeze, siempre pase la dimensión de compresión explícitamente para evitar sorpresas.

En su mayor parte, la asignación entre los tipos de campo de Proto y los tipos de dtypes de TensorFlow es sencilla. 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 decode_proto op.

- TensorFlow carece de soporte para enteros sin signo. Las operaciones representan los tipos uint64 como un `DT_INT64` con el mismo patrón de bits de 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 el llamador especifica` DT_INT32` en el atributo `output_types`.

Se admiten tanto proto serializaciones binarias como de texto, y se pueden elegir utilizando el atributo `formato`.

El atributo `descriptor_source` selecciona la fuente de descriptores de protocolo para consultar al buscar` message_type`. Esto podría ser:

- Una cadena vacía o "local: //", en cuyo caso los descriptores de protocolo se crean para las definiciones de proto C ++ (no Python) vinculadas al binario.

- Un archivo, en cuyo caso se crean descriptores de protocolo 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` e `--include_imports` para el compilador de protocolo` protocol`.

- A "bytes: // ", en el que los descriptores de protocolo se crean a partir de` `, que se espera que sea un` FileDescriptorSet` serializado como una cadena.

Clases anidadas

clase DecodeProto.Options Atributos opcionales para DecodeProto

Métodos públicos

DecodeProto estático
crear ( ámbito de alcance, operando <String> bytes, String messageType, List <String> fieldNames, List <Class <? >> outputTypes, Opciones ... opciones)
Método de fábrica para crear una clase que envuelva una nueva operación DecodeProto.
estático DecodeProto.Options
descriptorSource (String descriptorSource)
estático DecodeProto.Options
messageFormat (String messageFormat)
estático DecodeProto.Options
Salida <Entero>
tamaños ()
Tensor de int32 con forma `[batch_shape, len (field_names)]`.
Lista < Salida <? >>
valores ()
Lista de tensores que contienen valores para el campo correspondiente.

Métodos heredados

Métodos públicos

public static DecodeProto create ( alcance de alcance, operando <String> bytes, String messageType, List <String> fieldNames, List <Class <? >> outputTypes, Opciones ... opciones)

Método de fábrica para crear una clase que envuelva una nueva operación DecodeProto.

Parámetros
alcance alcance actual
bytes Tensor de protos serializados con forma `batch_shape`.
Tipo de mensaje Nombre del tipo de proto mensaje a decodificar.
fieldNames Lista de cadenas que contienen nombres de campos proto. Un campo de extensión se puede decodificar usando su nombre completo, por ejemplo, EXT_PACKAGE.EXT_FIELD_NAME.
outputTypes Lista de tipos de TF que se utilizarán para el campo respectivo en field_names.
opciones lleva valores de atributos opcionales
Devoluciones
  • una nueva instancia de DecodeProto

public static DecodeProto.Options descriptorSource (String descriptorSource)

Parámetros
descriptorSource O el valor especial `local: //` o una ruta a un archivo que contiene un `FileDescriptorSet` serializado.

public static DecodeProto.Options messageFormat (String messageFormat)

Parámetros
messageFormat Ya sea "binario" o "texto".

public static DecodeProto.Options desinfectar (desinfectar booleano)

Parámetros
desinfectar Ya sea para desinfectar el resultado o no.

Public Output <Integer> tamaños ()

Tensor de int32 con forma `[batch_shape, len (field_names)]`. Cada entrada es el número de valores encontrados para el campo correspondiente. Los campos opcionales pueden tener valores 0 o 1.

Lista pública < Salida <? >> valores ()

Lista de tensores que contienen valores para el campo correspondiente. `values ​​[i]` tiene el tipo de datos `output_types [i]` y forma `[batch_shape, max (tamaños [..., i])]`.