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 (кодировка набора символов)
Создает макет данных для преобразования строк в последовательности байтов или из них.

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

логическое значение
равно (Объект arg0)
последний класс<?>
получитьКласс ()
интервал
хэш-код ()
окончательная пустота
уведомить ()
окончательная пустота
уведомитьВсе ()
Нить
toString ()
окончательная пустота
подождать (длинный arg0, int arg1)
окончательная пустота
подождите (длинный arg0)
окончательная пустота
ждать ()

Поля

общедоступный статический окончательный 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 , чтобы указать, как строки должны кодироваться/декодироваться как последовательности байтов. Таким образом, всегда возвращается новый экземпляр макета.

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