DataLayouts

DataLayouts de clase final pública

Expone instancias de DataLayout de formatos de datos que se utilizan con frecuencia en el cálculo de álgebra lineal.

Ejemplo de uso:

// 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());
 

Campos

FloatDataLayout final estático público < ShortDataBuffer > BFLOAT16 Diseño de datos para convertir bfloats de 16 bits a / desde valores cortos.
public static final BooleanDataLayout < ByteDataBuffer > BOOL Diseño de datos para convertir booleanos a / desde valores de bytes.
FloatDataLayout final estático público < ShortDataBuffer > FLOTADOR 16 Diseño de datos para convertir medios flotantes de 16 bits a / desde valores cortos.

Constructores públicos

Métodos públicos

DataLayout estático < DataBuffer <byte []>, String>
ofStrings (juego de caracteres)
Crea un diseño de datos para convertir cadenas a / desde secuencias de bytes.

Métodos heredados

Campos

FloatDataLayout final estático público < ShortDataBuffer > BFLOAT16

Diseño de datos para convertir bfloats de 16 bits a / desde valores cortos.

Este formato solía ser específico de TensorFlow, pero ahora se ha adoptado de manera más amplia en el campo del aprendizaje automático. Está optimizado para una conversión rápida con puntos flotantes de 32 bits de precisión simple simplemente cambiando su valor y truncando la mantisa a solo 7 bits.

Por lo tanto, esta es una pérdida de precisión en la parte de fracción en comparación con la especificación de coma flotante de precisión media IEEE-754 (consulte FLOAT16 pero tiene un rango más grande de valores posibles en toda la parte ya que conserva el exponente de 8 bits y el mismo sesgo, (es decir, un rango absoluto por encima de 0 de aproximadamente [10 -40 , 3,39 × 10 38 ]

Algunas CPU admiten el formato bfloat16 de forma nativa para un mejor rendimiento.

public static final BooleanDataLayout < ByteDataBuffer > BOOL

Diseño de datos para convertir booleanos a / desde valores de bytes.

Dado que no existe un búfer booleano Java NIO, este diseño es particularmente útil para mapear valores booleanos con búferes de bytes estándar. La conversión entre un booleano y un byte requiere una conversión de tipos explícita.

FloatDataLayout final estático público < ShortDataBuffer > FLOAT16

Diseño de datos para convertir medios flotantes de 16 bits a / desde valores cortos.

Los medios flotantes se almacenan en la memoria de acuerdo con la especificación de punto flotante de media precisión IEEE-754 y se convierten a / desde flotantes de 32 bits en el espacio de usuario.

Existe una pérdida potencial de precisión al convertir un solo flotante (32 bits) en medio flotante (16 bits). El rango absoluto de valores por encima de 0 para un medio flotante es aproximadamente [5,96 × 10 -8 , 6,55 × 10 4 ] y su parte decimal se redondea a una mantisa de 10 bits.

En general, el cálculo medio flotante funciona mejor en las GPU ya que, en general, las CPU no admiten este formato de forma nativa.

Constructores públicos

DataLayouts públicos ()

Métodos públicos

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

Crea un diseño de datos para convertir cadenas a / desde secuencias de bytes.

Este diseño requiere un charset de charset en el parámetro para especificar cómo se deben codificar / decodificar las cadenas como secuencias de bytes. Por lo tanto, siempre se devuelve una nueva instancia de diseño.

Parámetros
juego de caracteres juego de caracteres para usar
Devoluciones
  • un nuevo diseño de cuerdas