Expõe instâncias DataLayout
de formatos de dados frequentemente usados em computação de álgebra linear.
Exemplo 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
público estático final FloatDataLayout < ShortDataBuffer > | BFLOAT16 | Layout de dados para converter bfloats de 16 bits de/para valores curtos. |
público estático final BooleanDataLayout < ByteDataBuffer > | BOOL | Layout de dados para converter booleanos de/para valores de bytes. |
público estático final FloatDataLayout < ShortDataBuffer > | FLOAT16 | Layout de dados para converter meios flutuantes de 16 bits de/para valores curtos. |
Construtores Públicos
Métodos Públicos
DataLayout estático < DataBuffer <byte[]>, String> | ofStrings (conjunto de caracteres) Cria um layout de dados para converter strings de/para sequências de bytes. |
Métodos herdados
Campos
público estático final FloatDataLayout < ShortDataBuffer > BFLOAT16
Layout de dados para converter bfloats de 16 bits de/para valores curtos.
Esse formato costumava ser específico do TensorFlow, mas agora foi adotado de forma mais ampla no campo de aprendizado de máquina. Ele é otimizado para conversão rápida com pontos flutuantes de 32 bits de precisão simples, simplesmente mudando seu valor e truncando a mantissa para apenas 7 bits.
Portanto, isso é uma perda de precisão na parte fracionária em comparação com a especificação de ponto flutuante de meia precisão IEEE-754 (consulte FLOAT16
, mas tem uma faixa maior de valores possíveis na parte inteira, pois preserva o expoente de 8 bits e usa o mesmo viés, (ou seja, um intervalo absoluto acima de 0 de aproximadamente [10 -40 , 3,39 × 10 38 ]
Algumas CPUs suportam nativamente o formato bfloat16 para melhor desempenho.
público estático final BooleanDataLayout < ByteDataBuffer > BOOL
Layout de dados para converter booleanos de/para valores de bytes.
Como não há buffer booleano Java NIO, esse layout é particularmente útil para mapear valores booleanos para buffers de bytes padrão. A conversão entre um booleano e um byte requer conversão de tipo explícita.
público estático final FloatDataLayout < ShortDataBuffer > FLOAT16
Layout de dados para converter meios flutuantes de 16 bits de/para valores curtos.
Meios flutuantes são armazenados na memória de acordo com a especificação de ponto flutuante de meia precisão IEEE-754 e são convertidos de/para flutuantes de 32 bits no espaço do usuário.
Há uma perda potencial de precisão ao converter um único ponto flutuante (32 bits) em meio ponto flutuante (16 bits). A faixa absoluta de valores acima de 0 para meio float é de aproximadamente [5,96 × 10 -8 , 6,55 × 10 4 ] e sua parte decimal é arredondada para uma mantissa de 10 bits.
Em geral, a computação half float tem melhor desempenho em GPUs, pois, em geral, as CPUs não suportam esse formato nativamente.
Construtores Públicos
DataLayouts públicos ()
Métodos Públicos
public static DataLayout < DataBuffer <byte[]>, String> ofStrings (Charset charset)
Cria um layout de dados para converter strings de/para sequências de bytes.
Este layout requer um parâmetro charset
in para especificar como as strings devem ser codificadas/decodificadas como sequências de bytes. Portanto, uma nova instância de layout é sempre retornada.
Parâmetros
conjunto de caracteres | conjunto de caracteres para usar |
---|
Devoluções
- um novo layout de string