L'opération sérialise les messages protobuf fournis dans les tenseurs d'entrée.
Les types des tenseurs dans `values` doivent correspondre au schéma des champs spécifiés dans `field_names`. Tous les tenseurs des « valeurs » doivent avoir un préfixe de forme commun, batch_shape .
Le tenseur « sizes » spécifie le nombre de répétitions pour chaque champ. Le nombre de répétitions (dernière dimension) de chaque tenseur dans les « valeurs » doit être supérieur ou égal au nombre de répétitions correspondant dans les « tailles ».
Un nom `message_type` doit être fourni pour donner le contexte aux noms de champs. Le descripteur de message réel peut être recherché soit dans le pool de descripteurs liés, soit dans un nom de fichier fourni par l'appelant à l'aide de l'attribut `descriptor_source`.
Pour l'essentiel, le mappage entre les types de champs Proto et les types TensorFlow est simple. Il existe cependant quelques cas particuliers :
- Un champ proto qui contient un sous-message ou un groupe ne peut être converti qu'en `DT_STRING` (le sous-message sérialisé). Il s'agit de réduire la complexité de l'API. La chaîne résultante peut être utilisée comme entrée dans une autre instance de l’opération decode_proto.
- TensorFlow ne prend pas en charge les entiers non signés. Les opérations représentent les types uint64 comme un « DT_INT64 » avec le même modèle de bits à complément à deux (de la manière la plus évidente). Les valeurs int32 non signées peuvent être représentées exactement en spécifiant le type `DT_INT64`, ou en utilisant un complément à deux si l'appelant spécifie `DT_INT32` dans l'attribut `output_types`.
L'attribut `descriptor_source` sélectionne la source des descripteurs de protocole à consulter lors de la recherche de `message_type`. Cela peut être:
- Une chaîne vide ou "local://", auquel cas des descripteurs de protocole sont créés pour les définitions de proto C++ (et non Python) liées au binaire.
- Un fichier, auquel cas les descripteurs de protocole sont créés à partir du fichier, qui est censé contenir un `FileDescriptorSet` sérialisé sous forme de chaîne. REMARQUE : Vous pouvez créer un fichier `descriptor_source` en utilisant les options `--descriptor_set_out` et `--include_imports` du compilateur de protocole `protoc`.
- Un "octets://
Classes imbriquées
classe | EncodeProto.Options | Attributs facultatifs pour EncodeProto |
Méthodes publiques
Sortie <Chaîne> | comme Sortie () Renvoie le handle symbolique d'un tenseur. |
Sortie <Chaîne> | octets () Tenseur de protos sérialisés de forme `batch_shape`. |
EncodeProto statique | créer (portée de portée , tailles d'opérande <Integer>, valeurs Iterable< Operand <?>>, List<String> fieldNames, String messageType, Options... options) Méthode d'usine pour créer une classe encapsulant une nouvelle opération EncodeProto. |
EncodeProto.Options statique | descripteurSource (Chaîne descripteurSource) |
Méthodes héritées
Méthodes publiques
sortie publique <String> asOutput ()
Renvoie le handle symbolique d'un tenseur.
Les entrées des opérations TensorFlow sont les sorties d'une autre opération TensorFlow. Cette méthode est utilisée pour obtenir un handle symbolique qui représente le calcul de l’entrée.
public static EncodeProto créer (portée d'étendue , tailles d'opérande <Integer>, valeurs Iterable< Operand <?>>, List<String> fieldNames, String messageType, Options... options)
Méthode d'usine pour créer une classe encapsulant une nouvelle opération EncodeProto.
Paramètres
portée | portée actuelle |
---|---|
tailles | Tenseur de int32 avec la forme `[batch_shape, len(field_names)]`. |
valeurs | Liste des tenseurs contenant les valeurs du champ correspondant. |
noms de champs | Liste de chaînes contenant les noms de champs de proto. |
type de message | Nom du type de message proto à décoder. |
choix | porte des valeurs d'attributs facultatifs |
Retour
- une nouvelle instance d'EncodeProto