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
Layout dati () |
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 set di caratteri)
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 |
---|
Ritorni
- un nuovo layout di corde