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