DecodeProto

public final class DecodeProto

L'op estrae i campi da un protocollo serializzato bufferizza il messaggio in tensori.

L'operazione `decode_proto` estrae i campi da un messaggio bufferizzato di protocollo serializzato in tensori. I campi in "field_names" vengono decodificati e convertiti nei corrispondenti "output_types", se possibile.

È necessario fornire un nome "message_type" per fornire un contesto ai 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 è anche imbottita di uno per evitare dimensioni zero). Il conteggio delle ripetizioni effettive per ogni esempio nel minibatch può essere trovato nell'output di `size`. In molti casi l'output di `decode_proto` viene immesso immediatamente in tf.squeeze se i valori mancanti non sono un problema. Quando si utilizza tf.squeeze, passare sempre la dimensione squeeze in modo esplicito per evitare sorprese.

Per la maggior parte, la mappatura tra i tipi di campo Proto e i tipi di campo 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 di decode_proto op.

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

Sono supportate sia le serializzazioni di proto binari che di testo e possono essere scelte usando 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 proto definizioni C ++ (non Python) collegate al 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 costruire un file `descriptor_source` usando le opzioni` --descriptor_set_out` e `--include_imports` nel compilatore del protocollo` protoc`.

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

Classi annidate

classe DecodeProto.Options Attributi opzionali per DecodeProto

Metodi pubblici

DecodeProto statico
create ( Scope scope, Operando <String> bytes, String messageType, List <String> fieldNames, List <Class <? >> outputTypes, Options ... options)
Metodo Factory per creare una classe che racchiude una nuova operazione DecodeProto.
statico DecodeProto.Options
descriptorSource (String descriptorSource)
statico DecodeProto.Options
messageFormat (String messageFormat)
statico DecodeProto.Options
sanitize (Boolean sanitize)
Uscita <Integer>
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 ( Scope scope, Operand <String> bytes, String messageType, List <String> fieldNames, List <Class <? >> outputTypes, Options ... options)

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

Parametri
scopo ambito attuale
byte Tensore di protos serializzati con forma `batch_shape`.
messageType Nome del tipo di messaggio proto da decodificare.
fieldNames Elenco di stringhe contenenti nomi di campi proto. Un campo di estensione 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
descriptorSource O il valore speciale `local: //` o un percorso a un file contenente un `FileDescriptorSet` serializzato.

public static DecodeProto.Options messageFormat (String messageFormat)

Parametri
messageFormat O "binary" o "text".

public static DecodeProto.Options sanitize (Boolean sanitize)

Parametri
igienizzare Se disinfettare o meno il risultato.

public Output <Integer> dimensioni ()

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

public List < Output <? >> valori ()

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