TensorBuffer

classe abstraite publique TensorBuffer
Sous-classes directes connues

Représente le tampon de données pour l'entrée ou la sortie d'un modèle.

Méthodes publiques

statique TensorBuffer
createDynamic(DataType dataType)
Crée une classe TensorBuffer dynamique vide avec la valeur DataType spécifiée.
statique TensorBuffer
createFixedSize(int[] shape, DataType dataType)
Crée un TensorBuffer avec les valeurs shape et DataType spécifiées.
statique TensorBuffer
createFrom(tampon TensorBuffer, type de données DataType)
Crée un objet TensorBuffer en effectuant une copie approfondie des données d'une autre instance, avec la valeur DataType spécifiée.
ByteBuffer
getBuffer()
Renvoie le tampon de données.
abstrait DataType
getDataType()
Renvoie le type de données de ce tampon.
int
getFlatSize()
Récupère la valeur flatSize du tampon.
abstrait float[]
getFloatArray()
Renvoie un tableau à virgule flottante des valeurs stockées dans ce tampon.
abstrait se superposer
getFloatValue(int absIndex)
Renvoie une valeur flottante à un indice donné.
abstrait entier[]
getIntArray()
Renvoie un tableau int des valeurs stockées dans ce tampon.
abstrait entier
getIntValue(int absIndex)
Renvoie une valeur int à un index donné.
entier[]
getShape()
Récupère la forme actuelle.
abstrait entier
getTypeSize()
Renvoie le nombre d'octets d'un seul élément du tableau.
booléen
isDynamic()
Renvoie si l'TensorBuffer est de taille dynamique (elle pourrait être redimensionnée arbitrairement).
abstrait vide
loadArray(int[] src, int[] shape)
Charge un tableau int dans ce tampon avec une forme spécifique.
abstrait vide
loadArray(float[] src, int[] shape)
Charge un tableau de valeurs flottantes avec une forme spécifique dans ce tampon.
vide
loadArray(float[] src)
Charge un tableau à virgule flottante dans ce tampon.
vide
loadArray(int[] src)
Charge un tableau int dans ce tampon.
vide
loadBuffer(tampon ByteBuffer)
Charge un tampon d'octets dans ce TensorBuffer.
vide
loadBuffer(tampon ByteBuffer, forme int[])
Charge un tampon d'octets dans cet élément TensorBuffer avec une forme spécifique.

Méthodes héritées

Méthodes publiques

<ph type="x-smartling-placeholder"></ph> public statique TensorBuffer createDynamic (DataType type de données)

Crée une classe TensorBuffer dynamique vide avec la valeur DataType spécifiée. La forme du le TensorBuffer créé est {0}.

Les TensorBuffers dynamiques réallouez de la mémoire lors du chargement de tableaux ou de tampons de données différentes tailles de tampon. Voici quelques exemples :

 // Creating a float dynamic TensorBuffer:
 TensorBuffer tensorBuffer = TensorBuffer.createDynamic(DataType.FLOAT32);
 // Loading a float array:
 float[] arr1 = new float[] {1, 2, 3};
 tensorBuffer.loadArray(arr, new int[] {arr1.length});
 // loading another float array:
 float[] arr2 = new float[] {1, 2, 3, 4, 5};
 tensorBuffer.loadArray(arr, new int[] {arr2.length});
 // loading a third float array with the same size as arr2, assuming shape doesn't change:
 float[] arr3 = new float[] {5, 4, 3, 2, 1};
 tensorBuffer.loadArray(arr);
 // loading a forth float array with different size as arr3 and omitting the shape will result
 // in error:
 float[] arr4 = new float[] {3, 2, 1};
 tensorBuffer.loadArray(arr); // Error: The size of byte buffer and the shape do not match.
 

Paramètres
dataType Le type de données du TensorBuffer à créer.

<ph type="x-smartling-placeholder"></ph> public statique TensorBuffer createFixedSize (int[] shape, DataType dataType)

Crée un TensorBuffer avec les valeurs shape et DataType spécifiées. Voici quelques exemples exemples:

 // Creating a float TensorBuffer with shape {2, 3}:
 int[] shape = new int[] {2, 3};
 TensorBuffer tensorBuffer = TensorBuffer.createFixedSize(shape, DataType.FLOAT32);
 
 // Creating an uint8 TensorBuffer of a scalar:
 int[] shape = new int[] {};
 TensorBuffer tensorBuffer = TensorBuffer.createFixedSize(shape, DataType.UINT8);
 
 // Creating an empty uint8 TensorBuffer:
 int[] shape = new int[] {0};
 TensorBuffer tensorBuffer = TensorBuffer.createFixedSize(shape, DataType.UINT8);
 

Une fois créé, un TensorBuffer de taille fixe ne peut plus être modifié.

Paramètres
shape Forme du TensorBuffer à créer.
dataType Le type de données du TensorBuffer à créer.
Génère
NullPointerException si shape est nul.
IllegalArgumentException Si shape comporte des éléments non positifs.

<ph type="x-smartling-placeholder"></ph> public statique TensorBuffer createFrom (tampon TensorBuffer, type de données DataType)

Crée un objet TensorBuffer en effectuant une copie approfondie des données d'une autre instance, avec la valeur DataType spécifiée.

Paramètres
mise en mémoire tampon la source TensorBuffer à partir de laquelle la copie est effectuée.
dataType la DataType attendue des TensorBuffer nouvellement créées.
Génère
NullPointerException si buffer est nul.

<ph type="x-smartling-placeholder"></ph> public ByteBuffer getBuffer ()

Renvoie le tampon de données.

<ph type="x-smartling-placeholder"></ph> public abstrait DataType getDataType ()

Renvoie le type de données de ce tampon.

<ph type="x-smartling-placeholder"></ph> public entier getFlatSize ()

Récupère la valeur flatSize du tampon.

Génère
IllegalStateException si les données sous-jacentes sont corrompues

<ph type="x-smartling-placeholder"></ph> public abstrait float[] getFloatArray ()

Renvoie un tableau à virgule flottante des valeurs stockées dans ce tampon. Si le tampon de différents types que float, les valeurs seront converties en float. Par exemple, les valeurs dans TensorBufferUint8 passeront de uint8 à float.

<ph type="x-smartling-placeholder"></ph> public abstrait se superposer getFloatValue (int absIndex)

Renvoie une valeur flottante à un indice donné. Si le tampon n'est pas de type flottant, sera convertie en valeur flottante. Par exemple, lors de la lecture d'une valeur de TensorBufferUint8, la valeur est d'abord lue à voix haute en tant que uint8, puis est convertie à partir de pour flotter uint8.

 For example, a TensorBuffer with shape {2, 3} that represents the following array,
 [[0.0f, 1.0f, 2.0f], [3.0f, 4.0f, 5.0f]].

 The fourth element (whose value is 3.0f) in the TensorBuffer can be retrieved by:
 float v = tensorBuffer.getFloatValue(3);
 

Paramètres
absIndex Index absolu de la valeur à lire.

<ph type="x-smartling-placeholder"></ph> public abstrait entier[] getIntArray ()

Renvoie un tableau int des valeurs stockées dans ce tampon. Si le type de tampon est différent que int, les valeurs sont converties en entiers, et une perte de précision peut s'appliquer. Par exemple : obtenir un tableau int à partir d'un élément TensorBufferFloat avec les valeurs {400.32f, 23.04f}, la sortie est {400, 23}.

<ph type="x-smartling-placeholder"></ph> public abstrait entier getIntValue (int absIndex)

Renvoie une valeur int à un index donné. Si les types de tampon sont différents de int, la valeur est convertie en entier. Par exemple, lors de la lecture d'une valeur de TensorBufferFloat, la valeur est d'abord lue à voix haute en tant que float, puis elle est convertie de float à int. Perte de précision peuvent s'appliquer.

 For example, a TensorBuffer with shape {2, 3} that represents the following array,
 [[0.0f, 1.0f, 2.0f], [3.0f, 4.0f, 5.0f]].

 The fourth element (whose value is 3.0f) in the TensorBuffer can be retrieved by:
 int v = tensorBuffer.getIntValue(3);
 Note that v is converted from 3.0f to 3 as a result of type conversion.
 

Paramètres
absIndex Index absolu de la valeur à lire.

<ph type="x-smartling-placeholder"></ph> public entier[] getShape ()

Récupère la forme actuelle. (renvoi d'une copie ici pour éviter toute modification inattendue.)

Génère
IllegalStateException si les données sous-jacentes sont corrompues

<ph type="x-smartling-placeholder"></ph> public abstrait entier getTypeSize ()

Renvoie le nombre d'octets d'un seul élément du tableau. Par exemple, un tampon flottant renvoie 4 et un tampon d'octets renvoie 1.

<ph type="x-smartling-placeholder"></ph> public Booléen isDynamic ()

Renvoie si l'TensorBuffer est de taille dynamique (elle pourrait être redimensionnée arbitrairement).

<ph type="x-smartling-placeholder"></ph> public abstrait vide loadArray (int[] src, int[] shape)

Charge un tableau int dans ce tampon avec une forme spécifique. Si le tampon de différents types que int, les valeurs sont converties dans le type de tampon avant d'être chargées dans d'un tampon, et une perte de précision peut s'appliquer. Par exemple, charger un tableau int avec des valeurs {400, -23} dans un TensorBufferUint8, les valeurs seront limitées à [0, 255], puis seront casté en uint8 par {255, 0}.

Paramètres
src Tableau source à charger.
shape Forme du Tensor représenté par src.
Génère
NullPointerException si src est nul.
NullPointerException si shape est nul.
IllegalArgumentException si la taille du tableau à charger ne correspond pas à la forme spécifiée.

<ph type="x-smartling-placeholder"></ph> public abstrait vide loadArray (forme flottante[] src, int[])

Charge un tableau de valeurs flottantes avec une forme spécifique dans ce tampon. Si le tampon de différents types que float, les valeurs sont converties dans le type de tampon avant d'être chargées dans le d'un tampon, et une perte de précision peut s'appliquer. Par exemple, si vous chargez un tableau de valeurs flottantes dans un TensorBufferUint8 avec des valeurs {400.32f, -23.04f}, les valeurs seront limitées à [0, 255] et puis sera casté en uint8 par {255, 0}.

Paramètres
src Tableau source à charger.
shape Forme du Tensor représenté par src.
Génère
NullPointerException si src est nul.
NullPointerException si shape est nul.
IllegalArgumentException si la taille du tableau à charger ne correspond pas à la forme spécifiée.

<ph type="x-smartling-placeholder"></ph> public vide loadArray (nombre à virgule flottante[] src)

Charge un tableau à virgule flottante dans ce tampon. Si le tampon n'est pas de type flottant, sont converties dans le type du tampon avant d'être chargées dans celui-ci, et la perte de précision peuvent s'appliquer. Par exemple, vous pouvez charger un tableau à virgule flottante dans un élément TensorBufferUint8. avec les valeurs {400.32f, -23.04f}, les valeurs seront limitées à [0, 255], puis converties en uint8 par {255, 0}.

Cette méthode suppose que la forme de src est identique à celle de ce TensorBuffer Ainsi, la taille de buffer (src.length) doit toujours correspondre la taille plate de ce TensorBuffer, pour les TensorBuffer de taille fixe et dynamiques. Utilisez loadArray(float[], int[]) si src a une forme différente.

Paramètres
src Tableau source à charger.

<ph type="x-smartling-placeholder"></ph> public vide loadArray (int[] src)

Charge un tableau int dans ce tampon. Si le tampon n'est pas de type int, les valeurs sera convertie dans le type du tampon avant d'y être chargé, et la perte de la précision peut s'appliquer. Par exemple, en chargeant un tableau int avec des valeurs {400, -23} dans un TensorBufferUint8, les valeurs seront limitées à [0, 255], puis seront converties en uint8 en {255, 0}.

Cette méthode suppose que la forme de src est identique à celle de ce TensorBuffer Ainsi, la taille de buffer (src.length) doit toujours correspondre. la taille plate de ce TensorBuffer, pour les TensorBuffer de taille fixe et dynamiques. Utilisez loadArray(int[], int[]) si src a une forme différente.

Paramètres
src Tableau source à charger.

<ph type="x-smartling-placeholder"></ph> public vide loadBuffer (tampon ByteBuffer)

Charge un tampon d'octets dans ce TensorBuffer. La taille de la mémoire tampon doit correspondre à la taille plate de ce TensorBuffer.

Cette méthode suppose que la forme de buffer est identique à celle de ce TensorBuffer Ainsi, la taille de buffer (buffer.limit()) doit toujours correspond à la taille plate de cet élément TensorBuffer, pour les TensorBuffer de taille fixe et dynamiques. Utiliser loadBuffer(ByteBuffer, int[]) si buffer est différent forme.

Important: Le tampon chargé est une référence. NE PAS MODIFIER. Nous ne créons pas de copie ici pour problème de performances. Toutefois, si une modification est nécessaire, veuillez en faire une copie.

Pour des performances optimales, chargez toujours un ByteBuffer ou un ByteBuffer direct reposant sur un tableau.

Si la buffer est en lecture seule, nous adoptons une stratégie de copie sur écriture pour optimiser les performances.

Paramètres
mise en mémoire tampon Tampon d'octets à charger.

<ph type="x-smartling-placeholder"></ph> public vide loadBuffer (tampon ByteBuffer, forme int[])

Charge un tampon d'octets dans cet élément TensorBuffer avec une forme spécifique.

Important: Le tampon chargé est une référence. NE PAS MODIFIER. Nous ne créons pas de copie ici pour problème de performances. Toutefois, si une modification est nécessaire, veuillez en faire une copie.

Pour des performances optimales, chargez toujours un ByteBuffer ou un ByteBuffer direct reposant sur un tableau.

Paramètres
mise en mémoire tampon Tampon d'octets à charger.
shape
Génère
NullPointerException si buffer est nul.
IllegalArgumentException si la taille de buffer et de typeSize ne ou la taille de buffer et flatSize ne correspondent pas.