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)
|
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 | |
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.
|