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 que le NativeInterpreterWrapper
a été fermé, la poignée du tenseur sera invalidée.
Classes imbriquées
classer | Tensor.QuantizationParamsTensor.QuantizationParams | Paramètres de quantification qui correspondent à la table, QuantizationParameters , dans le fichier de schéma du modèle TFLite. |
Méthodes publiques
abstract ByteBuffer | asReadOnlyBuffer () Renvoie une vue ByteBuffer en lecture seule des données du tenseur. |
Type de données abstrait | type de données () Renvoie le DataType des éléments stockés dans le Tensor. |
entier abstrait | nombreOctets () Renvoie la taille, en octets, des données du tenseur. |
entier abstrait | nombreDimensions () Renvoie le nombre de dimensions (parfois appelé rang ) du tenseur. |
entier abstrait | numÉléments () Renvoie le nombre d'éléments dans une vue aplatie (1-D) du tenseur. |
abstract Tensor.QuantizationParams | quantizationParams () Renvoie les paramètres de quantification du tenseur dans l'interpréteur propriétaire. |
entier abstrait[] | |
entier abstrait[] | formeSignature () Renvoie la forme d'origine du Tensor, c'est-à-dire la taille de chaque dimension - avant tout redimensionnement. |
Méthodes publiques
public abstract ByteBuffer asReadOnlyBuffer ()
Renvoie une vue ByteBuffer
en lecture seule des données du tenseur.
En général, cette méthode est plus utile pour obtenir une vue en lecture seule des données de 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 compliquer l'alimentation 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 l'exécution de l'inférence, le résultat est indéfini. Notez que le pointeur de 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à de l'utilisation immédiate suite directe à l'inférence. Exemple d'utilisation *mauvaise* :
ByteBuffer outputBuffer = interpreter.getOutputTensor(0).asReadOnlyBuffer();
interpreter.run(input, null);
// Copy or read from outputBuffer (which may now be invalid).
Lance
Exception d'argument illégal | si les données du tenseur n'ont pas été allouées. |
---|
public abstract int numBytes ()
Renvoie la taille, en octets, des données du tenseur.
public abstract int numDimensions ()
Renvoie le nombre de dimensions (parfois appelé rang ) du tenseur.
Sera 0 pour un scalaire, 1 pour un vecteur, 2 pour une matrice, 3 pour un tenseur tridimensionnel etc.
public abstract int numElements ()
Renvoie le nombre d'éléments dans une vue aplatie (1-D) du tenseur.
public abstract Tensor.QuantizationParams quantizationParams ()
Renvoie les paramètres de quantification du tenseur dans l'interpréteur propriétaire.
Seuls les tenseurs quantifiés ont des QuantizationParameters
valides. Pour les tenseurs qui ne sont pas quantifiés, les valeurs de scale et zero_point sont toutes les deux 0.
public abstract int [] forme ()
Renvoie la forme du Tensor, 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 abstract int[] shapeSignature ()
Renvoie la forme d'origine du Tensor, c'est-à-dire la taille 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.