DecodeProto

DecodeProto public final class

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 Los atributos opcionales para DecodeProto

Métodos públicos

estática DecodeProto
crear ( Alcance alcance, operando <String> bytes, cadena messageType, List <String> FieldNames, List <Clase <? >> outputTypes, Opciones ... Opciones)
Método de fábrica para crear una clase que envuelva una nueva operación DecodeProto.
estáticas DecodeProto.Options
descriptorSource (String descriptorSource)
estáticas DecodeProto.Options
MessageFormat (String MessageFormat)
estáticas DecodeProto.Options
esterilice (Boolean esterilice)
Salida <Integer>
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 crear ( Alcance alcance, operando <cadena> bytes, cadena messageType, List <String> FieldNames, List <Clase <? >> 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".

estáticas pública DecodeProto.Options desinfectar (booleano esterilice)

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

pública de salida <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 de ()

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])]`.