DataLayouts

DataLayouts della classe finale pubblica

Espone istanze DataLayout di formati di dati utilizzati frequentemente nel calcolo dell'algebra lineare.

Esempio di utilizzo:

// Storing boolean values in a ByteDataBuffer
 BooleanDataBuffer boolBuffer = DataLayouts.BOOL.applyTo(byteDataBuffer);

 // Allocating a new buffer of 256 half floats
 FloatDataBuffer halfBuffer = DataLayouts.FLOAT16.applyTo(DataBuffers.ofShorts(256 * DataLayouts.FLOAT16.scale());
 

Campi

pubblico statico finale FloatDataLayout < ShortDataBuffer > BFLOAT16 Layout dei dati per convertire bfloat a 16 bit in/da valori brevi.
public static final BooleanDataLayout < ByteDataBuffer > BOOL Layout dei dati per convertire booleani in/da valori byte.
pubblico statico finale FloatDataLayout < ShortDataBuffer > GALLEGGIANTE16 Layout dei dati per convertire mezzi float a 16 bit in/da valori brevi.

Costruttori pubblici

Metodi pubblici

dataLayout statico < DataBuffer <byte[]>, String>
ofStrings (set di caratteri Charset)
Crea un layout dati per convertire stringhe in/da sequenze di byte.

Metodi ereditati

Campi

finale statico pubblico FloatDataLayout < ShortDataBuffer > BFLOAT16

Layout dei dati per convertire bfloat a 16 bit in/da valori brevi.

Questo formato era specifico di TensorFlow, ma ora è stato adottato in modo più ampio nel campo del machine learning. È ottimizzato per la conversione rapida con virgola mobile a 32 bit a precisione singola semplicemente spostandone il valore e troncando la mantissa a soli 7 bit.

Pertanto, si tratta di una perdita di precisione nella parte frazione rispetto alla specifica in virgola mobile a mezza precisione IEEE-754 (vedere FLOAT16 ma ha una gamma più ampia di valori possibili nell'intera parte poiché preserva l'esponente a 8 bit e utilizza lo stesso bias, (ovvero un intervallo assoluto superiore a 0 di circa [10 -40 , 3,39 × 10 38 ]

Alcune CPU supportano nativamente il formato bfloat16 per prestazioni migliori.

public static final BooleanDataLayout < ByteDataBuffer > BOOL

Layout dei dati per convertire booleani in/da valori byte.

Poiché non esiste un buffer booleano Java NIO, questo layout è particolarmente utile per mappare i valori booleani sui buffer di byte standard. La conversione tra un valore booleano e un byte richiede un cast esplicito del tipo.

finale statico pubblico FloatDataLayout < ShortDataBuffer > FLOAT16

Layout dei dati per convertire mezzi float a 16 bit in/da valori brevi.

I mezzi float vengono archiviati in memoria in base alla specifica in virgola mobile a mezza precisione IEEE-754 e vengono convertiti in/da float a 32 bit nello spazio utente.

Esiste una potenziale perdita di precisione quando si converte un singolo float (32 bit) in mezzo float (16 bit). L'intervallo assoluto di valori superiori a 0 per un mezzo float è circa [5,96 × 10 -8 , 6,55 × 10 4 ] e la loro parte decimale è arrotondata a una mantissa di 10 bit.

In generale, il calcolo half float funziona meglio sulle GPU poiché, in generale, le CPU non supportano questo formato in modo nativo.

Costruttori pubblici

layout dati pubblici ()

Metodi pubblici

public static DataLayout < DataBuffer <byte[]>, String> ofStrings (charset charset)

Crea un layout dati per convertire stringhe in/da sequenze di byte.

Questo layout richiede un parametro charset in per specificare come le stringhe devono essere codificate/decodificate come sequenze di byte. Quindi viene sempre restituita una nuova istanza di layout.

Parametri
set di caratteri set di caratteri da utilizzare
ritorna
  • un nuovo layout di corde