A operação extrai campos de um protocolo serializado que armazena mensagens em tensores.
A operação `decode_proto` extrai campos de um protocolo serializado armazena mensagens em tensores. Os campos em `field_names` são decodificados e convertidos nos `output_types` correspondentes, se possível.
Um nome `message_type` deve ser fornecido para fornecer contexto para os nomes dos campos. O descritor de mensagem real pode ser consultado no conjunto de descritores vinculados ou em um nome de arquivo fornecido pelo chamador usando o atributo `descriptor_source`.
Cada tensor de saída é um tensor denso. Isso significa que ele é preenchido para conter o maior número de elementos repetidos vistos no minilote de entrada. (A forma também é preenchida com um para evitar dimensões de tamanho zero). As contagens reais de repetições para cada exemplo no minilote podem ser encontradas na saída `sizes`. Em muitos casos, a saída de `decode_proto` é alimentada imediatamente em tf.squeeze se os valores ausentes não forem uma preocupação. Ao usar tf.squeeze, sempre passe explicitamente a dimensão squeeze para evitar surpresas.
Na maior parte, o mapeamento entre os tipos de campo Proto e os dtypes do TensorFlow é direto. No entanto, existem alguns casos especiais:
- Um campo proto que contém uma submensagem ou grupo só pode ser convertido em `DT_STRING` (a submensagem serializada). Isso reduz a complexidade da API. A string resultante pode ser usada como entrada para outra instância da operação decode_proto.
- O TensorFlow não oferece suporte para números inteiros não assinados. As operações representam os tipos uint64 como `DT_INT64` com o mesmo padrão de bits de complemento de dois (a maneira óbvia). Valores int32 não assinados podem ser representados exatamente especificando o tipo `DT_INT64` ou usando complemento de dois se o chamador especificar `DT_INT32` no atributo `output_types`.
Ambas as serializações de proto binário e de texto são suportadas e podem ser escolhidas usando o atributo `format`.
O atributo `descriptor_source` seleciona a fonte dos descritores de protocolo a serem consultados ao procurar `message_type`. Isto pode ser:
- Uma string vazia ou "local://", caso em que os descritores de protocolo são criados para definições de proto C++ (não Python) vinculadas ao binário.
- Um arquivo, nesse caso os descritores de protocolo são criados a partir do arquivo, que deve conter um `FileDescriptorSet` serializado como uma string. NOTA: Você pode construir um arquivo `descriptor_source` usando as opções `--descriptor_set_out` e `--include_imports` para o compilador de protocolo `protoc`.
- Um "byte://
Classes aninhadas
aula | DecodeProto.Options | Atributos opcionais para DecodeProto |
Constantes
Corda | OP_NAME | O nome desta operação, conforme conhecido pelo mecanismo principal do TensorFlow |
Métodos Públicos
DecodeProto estático | |
DecodeProto.Options estático | descriptorSource (String descriptorSource) |
DecodeProto.Options estático | messageFormat (String messageFormat) |
DecodeProto.Options estático | higienizar (sanitizar booleano) |
Saída < TInt32 > | tamanhos () Tensor de int32 com forma `[batch_shape, len(field_names)]`. |
Lista< Saída <?>> | valores () Lista de tensores contendo valores para o campo correspondente. |
Métodos herdados
Constantes
String final estática pública OP_NAME
O nome desta operação, conforme conhecido pelo mecanismo principal do TensorFlow
Métodos Públicos
public static DecodeProto create ( Escopo escopo , Operando < TString > bytes, String messageType, List<String> fieldNames, List<Class<? estende TType >> outputTypes, Opções... opções)
Método de fábrica para criar uma classe que envolve uma nova operação DecodeProto.
Parâmetros
escopo | escopo atual |
---|---|
bytes | Tensor de protos serializados com formato `batch_shape`. |
tipo de mensagem | Nome do tipo de mensagem proto a ser decodificada. |
nomes de campos | Lista de strings contendo nomes de campos proto. Um campo de extensão pode ser decodificado usando seu nome completo, por exemplo, EXT_PACKAGE.EXT_FIELD_NAME. |
tipos de saída | Lista de tipos de TF a serem usados para o respectivo campo em field_names. |
opções | carrega valores de atributos opcionais |
Devoluções
- uma nova instância do DecodeProto
public static DecodeProto.Options descriptorSource (String descriptorSource)
Parâmetros
descritorFonte | O valor especial `local://` ou um caminho para um arquivo contendo um `FileDescriptorSet` serializado. |
---|
público estático DecodeProto.Options messageFormat (String messageFormat)
Parâmetros
mensagemFormat | Ou `binário` ou text . |
---|
public static DecodeProto.Options sanitize (sanitização booleana)
Parâmetros
higienizar | Seja para higienizar o resultado ou não. |
---|
Saída pública < TInt32 > tamanhos ()
Tensor de int32 com forma `[batch_shape, len(field_names)]`. Cada entrada é o número de valores encontrados para o campo correspondente. Os campos opcionais podem ter valores 0 ou 1.
Lista pública< Saída <?>> valores ()
Lista de tensores contendo valores para o campo correspondente. `values[i]` tem tipo de dados `output_types[i]` e formato `[batch_shape, max(sizes[...,i])]`.