L'operazione serializza i messaggi protobuf forniti nei tensori di input.
I tipi dei tensori in "values" devono corrispondere allo schema per i campi specificati in "field_names". Tutti i tensori in "values" devono avere un prefisso di forma comune, batch_shape .
Il tensore "dimensioni" specifica il numero di ripetizioni per ciascun campo. Il conteggio delle ripetizioni (ultima dimensione) di ciascun tensore in "valori" deve essere maggiore o uguale al conteggio delle ripetizioni corrispondente in "dimensioni".
È 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`.
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".
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://
Classi nidificate
classe | EncodeProto.Options | Attributi facoltativi per EncodeProto |
Metodi pubblici
Uscita <Stringa> | comeuscita () Restituisce la maniglia simbolica di un tensore. |
Uscita <Stringa> | byte () Tensore di prototipi serializzati con forma `batch_shape`. |
EncodeProto statico | create ( ambito ambito , dimensioni operando <intero>, valori Iterable< operando <?>>, nomi campo List<String>, tipo messaggio String, opzioni... ) Metodo factory per creare una classe che racchiude una nuova operazione EncodeProto. |
EncodeProto.Options statico | descriptorSource (String descriptorSource) |
Metodi ereditati
Metodi pubblici
output pubblico <String> asOutput ()
Restituisce la maniglia simbolica di un tensore.
Gli input per le operazioni TensorFlow sono output di un'altra operazione TensorFlow. Questo metodo viene utilizzato per ottenere un handle simbolico che rappresenta il calcolo dell'input.
creazione di EncodeProto statico pubblico (ambito ambito , dimensioni operando <intero>, valori Iterable< operando <?>>, nomi campo List<String>, tipo messaggio String, opzioni ... )
Metodo factory per creare una classe che racchiude una nuova operazione EncodeProto.
Parametri
scopo | ambito attuale |
---|---|
dimensioni | Tensore di int32 con forma `[batch_shape, len(field_names)]`. |
valori | Elenco di tensori contenenti valori per il campo corrispondente. |
fieldNames | Elenco di stringhe contenenti nomi di campi proto. |
messageType | Nome del tipo di messaggio prototipale da decodificare. |
opzioni | trasporta valori di attributi opzionali |
ritorna
- una nuova istanza di EncodeProto