La operación serializa los mensajes 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 `values` deben tener un prefijo de forma común, batch_shape.
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 que el 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 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`.
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`.
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: //
Clases anidadas
clase | EncodeProto.Options | Los atributos opcionales para EncodeProto |
Métodos públicos
Salida <String> | asOutput () Devuelve el identificador simbólico de un tensor. |
Salida <String> | bytes () Tensor de protos serializados con forma `batch_shape`. |
estática EncodeProto | crear ( Alcance alcance, operando <entero> tamaños, Iterable < operando <? >> valores, List <String> FieldNames, Cadena messageType, Opciones ... Opciones) Método de fábrica para crear una clase que envuelva una nueva operación EncodeProto. |
estáticas EncodeProto.Options | descriptorSource (String descriptorSource) |
Métodos heredados
Métodos públicos
pública de salida <String> asOutput ()
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.
public static EncodeProto crear ( Alcance alcance, operando <entero> tamaños, Iterable < operando <? >> valores, List <String> FieldNames, Cadena messageType, Opciones ... Opciones)
Método de fábrica para crear una clase que envuelva 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. |
fieldNames | Lista de cadenas que contienen nombres de campos proto. |
Tipo de mensaje | Nombre del tipo de proto mensaje a decodificar. |
opciones | lleva valores de atributos opcionales |
Devoluciones
- una nueva instancia de EncodeProto