DataLayouts

classe final pública DataLayouts

Expõe instâncias de DataLayout de formatos de dados freqüentemente 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

public static final FloatDataLayout < ShortDataBuffer > BFLOAT16 Layout de dados para converter bfloats de 16 bits de / para valores curtos.
public static final BooleanDataLayout < ByteDataBuffer > BOOL Layout de dados para converter booleanos de / para valores de bytes.
public static final FloatDataLayout < ShortDataBuffer > FLOAT16 Layout de dados para converter meias flutuações de 16 bits de / para valores curtos.

Construtores Públicos

Métodos Públicos

DataLayout estático < DataBuffer <byte []>, String>
ofStrings (conjunto de caracteres Charset)
Cria um layout de dados para converter strings de / para sequências de bytes.

Métodos herdados

Campos

public static 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 do aprendizado de máquina. Ele é otimizado para conversão rápida com pontos flutuantes de 32 bits de precisão única, 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 gama maior de valores possíveis em toda a parte, pois preserva o expoente de 8 bits e usa o mesmo viés, (ou seja, uma faixa absoluta acima de 0 de aproximadamente [10 -40 , 3,39 × 10 38 ]

Algumas CPUs suportam o formato bfloat16 nativamente para melhores desempenhos.

public static 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 byte padrão. A conversão entre um booleano e um byte requer conversão explícita de tipo.

public static final FloatDataLayout < ShortDataBuffer > FLOAT16

Layout de dados para converter meias flutuações de 16 bits de / para valores curtos.

Os 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 flutuadores de 32 bits no espaço do usuário.

Há uma perda potencial de precisão ao converter um único float (32 bits) em meio float (16 bits). A faixa absoluta de valores acima de 0 para um meio float é aproximadamente [5,96 × 10 -8 , 6,55 × 10 4 ] e sua parte decimal é arredondada para uma mantissa de 10 bits.

Em geral, o cálculo de half float tem um desempenho melhor em GPUs, pois, em geral, as CPUs não suportam esse formato nativamente.

Construtores Públicos

public DataLayouts ()

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 conjunto de charset no parâmetro 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
charset conjunto de caracteres para usar
Devoluções
  • um novo layout de string