DataLayouts

classe final pública DataLayouts

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