DataLayouts

публичный финальный класс DataLayouts

Предоставляет экземпляры DataLayout форматов данных, часто используемых в вычислениях линейной алгебры.

Пример использования:

// 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());
 

Поля

общедоступный статический окончательный FloatDataLayout <ShortDataBuffer> BFLOAT16 Расположение данных для преобразования 16-битных чисел с плавающей запятой в короткие значения и обратно.
общедоступный статический окончательный BooleanDataLayout <ByteDataBuffer> БООЛ Расположение данных для преобразования логических значений в байтовые значения и обратно.
общедоступный статический окончательный FloatDataLayout <ShortDataBuffer> ПОПЛАВОК16 Размещение данных для преобразования 16-битных половинных чисел с плавающей запятой в короткие значения и обратно.

Публичные конструкторы

Публичные методы

статический DataLayout < DataBuffer <byte[]>, String>
ofStrings (кодировка набора символов)
Создает макет данных для преобразования строк в последовательности байтов или из них.

Унаследованные методы

Поля

общедоступный статический окончательный FloatDataLayout < ShortDataBuffer > BFLOAT16

Расположение данных для преобразования 16-битных чисел с плавающей запятой в короткие значения и обратно.

Раньше этот формат был специфичен для TensorFlow, но теперь получил более широкое распространение в области машинного обучения. Он оптимизирован для быстрого преобразования с 32-битными числами с плавающей запятой одинарной точности путем простого сдвига их значения и усечения мантиссы до 7 бит.

Следовательно, это потеря точности в дробной части по сравнению со спецификацией IEEE-754 с плавающей запятой половинной точности (см. FLOAT16 , но она имеет более широкий диапазон возможных значений в целой части, поскольку сохраняет 8-битный показатель степени и использует такое же смещение (т.е. абсолютный диапазон выше 0 примерно [10 -40 , 3,39 × 10 38 ]

Некоторые процессоры изначально поддерживают формат bfloat16 для повышения производительности.

public static Final BooleanDataLayout < ByteDataBuffer > BOOL

Расположение данных для преобразования логических значений в байтовые значения и обратно.

Поскольку логический буфер Java NIO отсутствует, эта схема особенно полезна для сопоставления логических значений со стандартными байтовыми буферами. Преобразование между логическим значением и байтом требует явного приведения типов.

общедоступный статический окончательный FloatDataLayout < ShortDataBuffer > FLOAT16

Размещение данных для преобразования 16-битных половинных чисел с плавающей запятой в короткие значения и обратно.

Половинные числа с плавающей запятой хранятся в памяти в соответствии со спецификацией IEEE-754 с плавающей запятой половинной точности и преобразуются в/из 32-битных чисел с плавающей запятой в пользовательском пространстве.

Существует потенциальная потеря точности при преобразовании одного числа с плавающей точкой (32 бита) в половину числа с плавающей запятой (16 бит). Абсолютный диапазон значений выше 0 для половины числа с плавающей запятой составляет примерно [5,96 × 10 -8 , 6,55 × 10 4 ], а их десятичная часть округляется до 10-битной мантиссы.

В целом вычисления с половинным числом с плавающей запятой выполняются лучше на графических процессорах, поскольку процессоры, как правило, не поддерживают этот формат изначально.

Публичные конструкторы

общедоступные DataLayouts ()

Публичные методы

public static DataLayout < DataBuffer <byte[]>, String> ofStrings (кодировка набора символов)

Создает макет данных для преобразования строк в последовательности байтов или из них.

Для этого макета требуется параметр charset , чтобы указать, как строки должны кодироваться/декодироваться как последовательности байтов. Таким образом, всегда возвращается новый экземпляр макета.

Параметры
кодировка кодировка для использования
Возврат
  • новая раскладка строк