DecodeProto

classe finale pubblica DecodeProto

L'operazione estrae i campi da un protocollo serializzato memorizzando il messaggio in tensori.

L'operazione "decode_proto" estrae i campi da un protocollo serializzato e bufferizza i messaggi in tensori. I campi in "field_names" vengono decodificati e convertiti nei corrispondenti "output_types" se possibile.

È necessario fornire un nome "tipo_messaggio" per fornire il contesto per i nomi dei campi. Il descrittore del messaggio effettivo può essere cercato nel pool di descrittori collegati o in un nome file fornito dal chiamante utilizzando l'attributo `descriptor_source`.

Ogni tensore di uscita è un tensore denso. Ciò significa che è riempito per contenere il maggior numero di elementi ripetuti visti nel minibatch di input. (La forma viene inoltre riempita con uno per evitare dimensioni pari a zero). Il numero effettivo di ripetizioni per ciascun esempio nel minibatch può essere trovato nell'output "sizes". In molti casi l'output di `decode_proto` viene inserito immediatamente in tf.squeeze se i valori mancanti non sono un problema. Quando si utilizza tf.squeeze, passare sempre esplicitamente la dimensione squeeze per evitare sorprese.

Nella maggior parte dei casi, la mappatura tra i tipi di campo Proto e i dtype di TensorFlow è semplice. Tuttavia, ci sono alcuni casi speciali:

- Un campo proto che contiene un sottomessaggio o un gruppo può essere convertito solo in "DT_STRING" (il sottomessaggio serializzato). Questo per ridurre la complessità dell'API. La stringa risultante può essere utilizzata come input per un'altra istanza dell'operazione decode_proto.

- TensorFlow non supporta gli interi senza segno. Le operazioni rappresentano i tipi uint64 come `DT_INT64` con lo stesso pattern di bit in complemento a due (nel modo ovvio). I valori int32 senza segno possono essere rappresentati esattamente specificando il tipo "DT_INT64" o utilizzando il complemento a due se il chiamante specifica "DT_INT32" nell'attributo "output_types".

Sono supportate sia la serializzazione binaria che quella di prototipi di testo e possono essere scelte utilizzando l'attributo `format`.

L'attributo "descriptor_source" seleziona la fonte dei descrittori di protocollo da consultare quando si cerca "message_type". Può essere:

- Una stringa vuota o "local://", nel qual caso vengono creati descrittori di protocollo per le definizioni prototipali C++ (non Python) collegate al file binario.

- Un file, nel qual caso i descrittori di protocollo vengono creati dal file, che dovrebbe contenere un `FileDescriptorSet` serializzato come una stringa. NOTA: puoi creare un file `descriptor_source` utilizzando le opzioni `--descriptor_set_out` e `--include_imports` nel compilatore di protocolli `protoc`.

- Un "byte:// ", in cui i descrittori di protocollo vengono creati da ` ", che dovrebbe essere un "FileDescriptorSet" serializzato come stringa.

Classi nidificate

classe DecodeProto.Options Attributi facoltativi per DecodeProto

Metodi pubblici

DecodificaProto statico
create ( ambito ambito , operando <String> byte, stringa messageType, List<String> fieldNames, List<Class<?>> outputTypes, Opzioni... opzioni)
Metodo factory per creare una classe che racchiude una nuova operazione DecodeProto.
DecodeProto.Options statico
descriptorSource (String descriptorSource)
DecodeProto.Options statico
messageFormat (String messageFormat)
DecodeProto.Options statico
disinfettare (sanifica booleano)
Output <Intero>
dimensioni ()
Tensore di int32 con forma `[batch_shape, len(field_names)]`.
Elenco< Uscita <?>>
valori ()
Elenco di tensori contenenti valori per il campo corrispondente.

Metodi ereditati

Metodi pubblici

public static DecodeProto create ( ambito ambito , operando <String> byte, String messageType, List<String> fieldNames, List<Class<?>> outputTypes, Opzioni... opzioni)

Metodo factory per creare una classe che racchiude una nuova operazione DecodeProto.

Parametri
scopo ambito attuale
byte Tensore di prototipi serializzati con forma `batch_shape`.
messageType Nome del tipo di messaggio prototipale da decodificare.
fieldNames Elenco di stringhe contenenti nomi di campi proto. Un campo ampliamento può essere decodificato utilizzando il suo nome completo, ad esempio EXT_PACKAGE.EXT_FIELD_NAME.
outputTypes Elenco dei tipi di TF da utilizzare per il rispettivo campo in field_names.
opzioni trasporta valori di attributi opzionali
ritorna
  • una nuova istanza di DecodeProto

public static DecodeProto.Options descriptorSource (String descriptorSource)

Parametri
descrittoreSource Il valore speciale "local://" o il percorso di un file contenente un "FileDescriptorSet" serializzato.

public static DecodeProto.Options messageFormat (String messageFormat)

Parametri
messageFormat O "binario" o "testo".

public static DecodeProto.Options sanitize (sanitizzazione booleana)

Parametri
igienizzare Se disinfettare il risultato o meno.

dimensioni dell'output <intero> pubblico ()

Tensore di int32 con forma `[batch_shape, len(field_names)]`. Ogni voce rappresenta il numero di valori trovati per il campo corrispondente. I campi facoltativi possono avere 0 o 1 valore.

elenco pubblico< Output <?>> valori ()

Elenco di tensori contenenti valori per il campo corrispondente. "values[i]" ha il tipo di dati "output_types[i]" e la forma "[batch_shape, max(sizes[...,i])]".