Un tableau multidimensionnel typé utilisé dans Tensorflow Lite.
Le handle natif d'un Tensor
est géré par NativeInterpreterWrapper
et n'a pas besoin d'être fermé par le client. Cependant, une fois le NativeInterpreterWrapper
fermé, le handle tensoriel sera invalidé.
Classes imbriquées
classe | Tensor.QuantizationParams | Paramètres de quantification qui correspondent à la table QuantizationParameters dans le fichier de schéma du modèle TFLite. |
Méthodes publiques
tampon d'octets abstrait | commeReadOnlyBuffer () Renvoie une vue ByteBuffer en lecture seule des données tensorielles. |
Type de données abstrait | Type de données () Renvoie le DataType des éléments stockés dans le Tensor. |
abstrait entier | nombreOctets () Renvoie la taille, en octets, des données tensorielles. |
abstrait entier | numDimensions () Renvoie le nombre de dimensions (parfois appelé rang ) du Tensor. |
abstrait entier | numElements () Renvoie le nombre d'éléments dans une vue aplatie (1-D) du tenseur. |
abstrait Tensor.QuantizationParams | quantificationParams () Renvoie les paramètres de quantification du tenseur dans l'interpréteur propriétaire. |
abstrait int[] | |
abstrait int[] | formeSignature () Renvoie la forme originale du Tensor, c'est-à-dire les tailles de chaque dimension - avant tout redimensionnement. |
Méthodes publiques
résumé public ByteBuffer asReadOnlyBuffer ()
Renvoie une vue ByteBuffer
en lecture seule des données tensorielles.
En général, cette méthode est très utile pour obtenir une vue en lecture seule des données du tenseur de sortie, *après* l'inférence a été exécutée (par exemple, via InterpreterApi.run(Object, Object)
). En particulier, certains graphiques ont des sorties de forme dynamique, ce qui peut rendre difficile l'envoi d'un tampon de sortie prédéfini à l'interpréteur. Exemple d'utilisation :
interpreter.run(input, null);
ByteBuffer outputBuffer = interpreter.getOutputTensor(0).asReadOnlyBuffer();
// Copy or read from outputBuffer.
AVERTISSEMENT : si le tenseur n'a pas encore été alloué, par exemple avant que l'inférence ne soit exécutée, le résultat n'est pas défini. Notez que le pointeur du tenseur sous-jacent peut également changer lorsque le tenseur est invalidé de quelque manière que ce soit (par exemple, si l'inférence est exécutée ou si le graphique est redimensionné), il n'est donc *pas* sûr de conserver une référence au tampon renvoyé au-delà d'une utilisation immédiate. directement après l'inférence. Exemple de *mauvaise* utilisation :
ByteBuffer outputBuffer = interpreter.getOutputTensor(0).asReadOnlyBuffer();
interpreter.run(input, null);
// Copy or read from outputBuffer (which may now be invalid).
Jetés
Exception d'argument illégal | si les données tensorielles n'ont pas été allouées. |
---|
public abstrait int numBytes ()
Renvoie la taille, en octets, des données tensorielles.
public abstract int numDimensions ()
Renvoie le nombre de dimensions (parfois appelé rang ) du Tensor.
Sera 0 pour un scalaire, 1 pour un vecteur, 2 pour une matrice, 3 pour un tenseur tridimensionnel, etc.
public abstrait int numElements ()
Renvoie le nombre d'éléments dans une vue aplatie (1-D) du tenseur.
résumé public Tensor.QuantizationParams quantizationParams ()
Renvoie les paramètres de quantification du tenseur dans l'interpréteur propriétaire.
Seuls les tenseurs quantifiés ont QuantizationParameters
valides. Pour les tenseurs qui ne sont pas quantifiés, les valeurs de scale et zero_point sont toutes deux 0.
forme publique abstraite int[] ()
Renvoie la forme du Tenseur, c'est-à-dire les tailles de chaque dimension.
Retour
- un tableau où le i-ème élément est la taille de la i-ème dimension du tenseur.
public abstrait int[] shapeSignature ()
Renvoie la forme originale du Tensor, c'est-à-dire les tailles de chaque dimension - avant tout redimensionnement. Les dimensions inconnues sont désignées par une valeur de -1.
Retour
- un tableau où le i-ème élément est la taille de la i-ème dimension du tenseur.