| Sottoclassi dirette note |
Rappresenta il buffer dei dati per l'input o l'output di un modello.
Metodi pubblici
| statico TensorBuffer |
createDynamic(DataType dataType)
Crea un elemento
TensorBuffer dinamico vuoto con il valore DataType specificato. |
| statico TensorBuffer |
createFixedSize(int[] shape, DataType dataType)
|
| statico TensorBuffer |
createFrom(buffer TensorBuffer, DataType dataType)
Crea un
TensorBuffer di copia approfondita dei dati da un altro, con il valore DataType specificato. |
| ByteBuffer |
getBuffer()
Restituisce il buffer di dati.
|
| astratto DataType |
getDataType()
Restituisce il tipo di dati del buffer.
|
| int |
getFlatSize()
Ottiene il valore flatSize del buffer.
|
| astratto float[] |
getFloatArray()
Restituisce un array in virgola mobile dei valori memorizzati in questo buffer.
|
| astratto in virgola mobile |
getFloatValue(int ABIndex)
Restituisce un valore in virgola mobile in un dato indice.
|
| astratto int[] |
getIntArray()
Restituisce un array int dei valori archiviati nel buffer.
|
| astratto int |
getIntValue(int ABIndex)
Restituisce un valore int in un determinato indice.
|
| int[] |
getShape()
Recupera la forma corrente.
|
| astratto int |
getTypeSize()
Restituisce il numero di byte di un singolo elemento dell'array.
|
| booleano |
isDynamic()
Restituisce un valore che indica se
TensorBuffer ha dimensioni dinamiche (il ridimensionamento potrebbe avvenire in modo arbitrario). |
| astratto null |
loadArray(int[] src, int[] shape)
Carica un array int in questo buffer con una forma specifica.
|
| astratto null |
loadArray(float[] src, int[] shape)
Carica un array in virgola mobile in questo buffer con una forma specifica.
|
| null |
loadArray(float[] src)
Carica un array in virgola mobile in questo buffer.
|
| null |
loadArray(int[] src)
Carica un array int in questo buffer.
|
| null | |
| null |
loadBuffer(buffer ByteBuffer, forma int[])
Carica un buffer di byte in questo
TensorBuffer con una forma specifica. |
Metodi ereditati
Metodi pubblici
pubblica statico TensorBuffer createDynamic (DataType dataType)
Crea un elemento TensorBuffer dinamico vuoto con il valore DataType specificato. La forma del
TensorBuffer creato è {0}.
Dynamic TensorBuffers rialloca la memoria quando vengono caricati array o buffer di dati dimensioni del buffer diverse. Ecco alcuni esempi:
// 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.
Parametri
| dataType | Il dataType di TensorBuffer da creare.
|
|---|
pubblica statico TensorBuffer createFixedSize (int[] shape, DataType dataType)
Crea un elemento TensorBuffer con shape e DataType specificati. Ecco alcuni esempi
esempi:
// 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);
Dopo la creazione, non è possibile modificare la dimensione di un TensorBuffer a dimensione fissa.
Parametri
| forma | La forma di TensorBuffer da creare. |
|---|---|
| dataType | Il dataType di TensorBuffer da creare. |
Lanci
| NullPointerException | se shape è null. |
|---|---|
| IllegalArgumentException | se shape contiene elementi non positivi.
|
pubblica statico TensorBuffer createFrom (Buffer TensorBuffer, DataType dataType)
Crea un TensorBuffer di copia approfondita dei dati da un altro, con il valore DataType specificato.
Parametri
| buffer | l'origine TensorBuffer da cui eseguire la copia. |
|---|---|
| dataType | il valore previsto di DataType per la metrica TensorBuffer appena creata. |
Lanci
| NullPointerException | se buffer è null.
|
|---|
pubblica int . getFlatSize ()
Ottiene il valore flatSize del buffer.
Lanci
| IllegalStateException | se i dati sottostanti sono danneggiati |
|---|
pubblica astratto float[] . getFloatArray ()
Restituisce un array in virgola mobile dei valori memorizzati in questo buffer. Se il buffer è di tipo diverso
rispetto a un numero in virgola mobile, i valori verranno convertiti in numeri in virgola mobile. Ad esempio, i valori in TensorBufferUint8 verranno convertiti da uint8 a virgola mobile.
pubblica astratto in virgola mobile . getFloatValue (int ABIndex)
Restituisce un valore in virgola mobile in un dato indice. Se il buffer è di tipo diverso da quello in virgola mobile,
verrà convertito in valore in virgola mobile. Ad esempio, durante la lettura di un valore da TensorBufferUint8, il valore verrà prima letto come uint8, poi verrà convertito da
uint8 per fluttuare.
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);
Parametri
| absIndex | L'indice assoluto del valore da leggere. |
|---|
pubblica astratto int[] . getIntArray ()
Restituisce un array int dei valori archiviati nel buffer. Se il buffer è di tipo diverso
rispetto a int, i valori verranno convertiti in int e potrebbe verificarsi una perdita di precisione. Ad esempio:
recuperando un array int da un TensorBufferFloat con valori {400.32f, 23.04f}, l'output
è {400, 23}.
pubblica astratto int . getIntValue (int ABIndex)
Restituisce un valore int in un determinato indice. Se il buffer è di tipo diverso da int, il valore
verrà convertita in int. Ad esempio, quando leggi un valore da TensorBufferFloat,
il valore verrà prima letto ad alta voce come numero in virgola mobile, poi verrà convertito da numero in virgola mobile a int. Perdita
di precisione.
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.
Parametri
| absIndex | L'indice assoluto del valore da leggere. |
|---|
pubblica int[] . getShape ()
Recupera la forma corrente. (restituendo una copia qui per evitare modifiche impreviste.)
Lanci
| IllegalStateException | se i dati sottostanti sono danneggiati |
|---|
pubblica astratto int . getTypeSize ()
Restituisce il numero di byte di un singolo elemento dell'array. Ad esempio, un buffer in virgola mobile restituisce 4, mentre un buffer di byte restituisce 1.
pubblica booleano . isDynamic ()
Restituisce un valore che indica se TensorBuffer ha dimensioni dinamiche (il ridimensionamento potrebbe avvenire in modo arbitrario).
pubblica astratto null . loadArray (int[] src, int[] shape)
Carica un array int in questo buffer con una forma specifica. Se il buffer è di tipo diverso
rispetto a int, i valori verranno convertiti nel tipo di buffer prima di essere caricati
buffer e potrebbe verificarsi una perdita di precisione. Ad esempio, il caricamento di un array int con valori {400,
-23} in un TensorBufferUint8 , i valori verranno bloccati su [0, 255] e quindi
trasmesso in uint8 da {255, 0}.
Parametri
| src | L'array di origine da caricare. |
|---|---|
| forma | Forma del tensore rappresentato da src. |
Lanci
| NullPointerException | se src è null. |
|---|---|
| NullPointerException | se shape è null. |
| IllegalArgumentException | se la dimensione dell'array da caricare non corrisponde forma specificata. |
pubblica astratto null . loadArray (float[] src, int[] shape)
Carica un array in virgola mobile in questo buffer con una forma specifica. Se il buffer è di tipo diverso
rispetto al valore in virgola mobile, i valori verranno convertiti nel tipo di buffer prima di essere caricati
buffer e potrebbe verificarsi una perdita di precisione. Ad esempio, se carichi un array in virgola mobile in un TensorBufferUint8 con valori {400.32f, -23.04f}, i valori verranno bloccati su [0, 255] e
quindi deve essere trasmesso in uint8 da {255, 0}.
Parametri
| src | L'array di origine da caricare. |
|---|---|
| forma | Forma del tensore rappresentato da src. |
Lanci
| NullPointerException | se src è null. |
|---|---|
| NullPointerException | se shape è null. |
| IllegalArgumentException | se la dimensione dell'array da caricare non corrisponde forma specificata. |
pubblica null . loadArray (sorgente in virgola mobile[])
Carica un array in virgola mobile in questo buffer. Se il buffer è di tipo diverso da quello in virgola mobile,
verranno convertiti nel tipo di buffer prima di essere caricati nel buffer e
di precisione. Ad esempio, il caricamento di un array in virgola mobile in un TensorBufferUint8
con valori {400.32f, -23.04f}, i valori verranno bloccati su [0, 255] e quindi trasmessi a
uint8 di {255, 0}.
L'utilizzo di questo metodo presuppone che la forma di src sia uguale alla forma dell'elemento
TensorBuffer. Di conseguenza, la dimensione di buffer (src.length) deve sempre corrispondere
la dimensione fissa di questo TensorBuffer, sia per TensorBuffer di dimensioni fisse sia per quelli dinamici. Usa loadArray(float[], int[]) se src ha una forma diversa.
Parametri
| src | L'array di origine da caricare. |
|---|
pubblica null . loadArray (int[] src)
Carica un array int in questo buffer. Se il buffer è di tipo diverso da int, i valori
verrà convertito nel tipo di buffer prima di essere caricato nel buffer, mentre la perdita
la precisione può essere applicata. Ad esempio, se carichi un array int con valori {400, -23} in un TensorBufferUint8 , i valori verranno bloccati su [0, 255] e quindi trasmessi a uint8 tramite
{255, 0}.
L'utilizzo di questo metodo presuppone che la forma di src sia uguale alla forma dell'elemento
TensorBuffer. Di conseguenza, la dimensione di buffer (src.length) deve sempre corrispondere
la dimensione fissa di questo TensorBuffer, sia per TensorBuffer di dimensioni fisse sia per quelli dinamici. Usa loadArray(int[], int[]) se src ha una forma diversa.
Parametri
| src | L'array di origine da caricare. |
|---|
pubblica null . loadBuffer (buffer ByteBuffer)
Carica un buffer di byte in questo TensorBuffer. La dimensione del buffer deve corrispondere alla dimensione fissa
questo TensorBuffer.
L'utilizzo di questo metodo presuppone che la forma di buffer sia uguale alla forma dell'elemento
TensorBuffer. Di conseguenza, la dimensione di buffer (buffer.limit()) deve sempre
corrispondono alla dimensione fissa di questo TensorBuffer, sia per TensorBuffer a dimensioni fisse che per quelli dinamici. Usa loadBuffer(ByteBuffer, int[]) se buffer ha un altro
forma.
Importante: il buffer caricato è un riferimento. NON MODIFICARE. Non creiamo una copia qui per problemi di rendimento, ma se è necessaria una modifica, creane una copia.
Per un rendimento ottimale, carica sempre un ByteBuffer diretto o un ByteBuffer
supportati da un array.
Se il buffer è di sola lettura, adottiamo una strategia di copia alla scrittura per migliorare le prestazioni.
Parametri
| buffer | Il buffer di byte da caricare. |
|---|
pubblica null . loadBuffer (buffer ByteBuffer, forma int[])
Carica un buffer di byte in questo TensorBuffer con una forma specifica.
Importante: il buffer caricato è un riferimento. NON MODIFICARE. Non creiamo una copia qui per problemi di rendimento, ma se è necessaria una modifica, creane una copia.
Per un rendimento ottimale, carica sempre un ByteBuffer diretto o un ByteBuffer
supportati da un array.
Parametri
| buffer | Il buffer di byte da caricare. |
|---|---|
| forma |
Lanci
| NullPointerException | se buffer è null. |
|---|---|
| IllegalArgumentException | se le dimensioni di buffer e typeSize non corrispondono
oppure la dimensione di buffer e flatSize non corrispondono.
|