Expone instancias DataLayout
de formatos de datos utilizados 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. |
BooleanDataLayout final estático público <ByteDataBuffer> | BOOL | Diseño de datos para convertir valores booleanos a/desde valores de bytes. |
FloatDataLayout final estático público <ShortDataBuffer> | FLOTADOR16 | Diseño de datos para convertir medios flotantes de 16 bits a/desde valores cortos. |
Constructores Públicos
Métodos públicos
Diseño de datos estático < Buffer de datos <byte[]>, Cadena> | 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, esto es una pérdida de precisión en la parte fraccionaria en comparación con la especificación de punto flotante de media precisión IEEE-754 (ver FLOAT16
pero tiene un rango mayor de valores posibles en la parte completa ya que conserva el exponente de 8 bits y usa 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 obtener mejores rendimientos.
BooleanDataLayout final estático público <ByteDataBuffer> BOOL
Diseño de datos para convertir valores booleanos a/desde valores de bytes.
Dado que no existe un búfer booleano Java NIO, este diseño es particularmente útil para asignar valores booleanos a búferes de bytes estándar. La conversión entre un valor 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 del usuario.
Existe una posible pérdida de precisión al convertir un solo flotante (32 bits) en medio flotante (16 bits). El rango absoluto de valores superiores a 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
Diseños de datos públicos ()
Métodos públicos
Diseño de datos estático público < DataBuffer <byte[]>, Cadena> ofStrings (conjunto de caracteres Charset)
Crea un diseño de datos para convertir cadenas a/desde secuencias de bytes.
Este diseño requiere un parámetro de charset
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 cadena