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

booleano
é igual (objeto arg0)
aula final<?>
getClass ()
interno
código hash ()
vazio final
notificar ()
vazio final
notificar todos ()
Corda
toString ()
vazio final
espere (long arg0, int arg1)
vazio final
espere (arg0 longo)
vazio final
espere ()

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