Pokazuje wystąpienia DataLayout
formatów danych często używanych w obliczeniach algebry liniowej.
Przykład użycia:
// 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());
Pola
publiczny statyczny końcowy FloatDataLayout < ShortDataBuffer > | BFLOAT16 | Układ danych do konwersji 16-bitowych wartości bfloat na/z krótkich wartości. |
publiczny statyczny końcowy BooleanDataLayout < ByteDataBuffer > | BOOL | Układ danych do konwersji wartości logicznych na/z wartości bajtów. |
publiczny statyczny końcowy FloatDataLayout < ShortDataBuffer > | PŁYWACZ16 | Układ danych do konwersji 16-bitowych półzmiennych na/z krótkich wartości. |
Konstruktorzy publiczni
Metody publiczne
statyczny układ danych < Bufor danych <bajt[]>, ciąg> | ofStrings (zestaw znaków) Tworzy układ danych do konwersji ciągów znaków na/z sekwencji bajtów. |
Metody dziedziczone
Pola
publiczny statyczny końcowy FloatDataLayout < ShortDataBuffer > BFLOAT16
Układ danych do konwersji 16-bitowych wartości bfloat na/z krótkich wartości.
Ten format był kiedyś specyficzny dla TensorFlow, ale teraz został szerzej przyjęty w dziedzinie uczenia maszynowego. Jest zoptymalizowany pod kątem szybkiej konwersji za pomocą 32-bitowych zmiennoprzecinkowych punktów o pojedynczej precyzji poprzez proste przesunięcie ich wartości i obcięcie mantysy do zaledwie 7 bitów.
Dlatego jest to utrata precyzji w części ułamkowej w porównaniu ze specyfikacją zmiennoprzecinkową o połowie precyzji IEEE-754 (patrz FLOAT16
, ale ma większy zakres możliwych wartości w całej części, ponieważ zachowuje 8-bitowy wykładnik i wykorzystuje to samo odchylenie (tj. zakres bezwzględny powyżej 0 w przybliżeniu [10 -40 , 3,39 × 10 38 ]
Niektóre procesory obsługują natywnie format bfloat16 w celu zapewnienia lepszej wydajności.
publiczny statyczny końcowy BooleanDataLayout < ByteDataBuffer > BOOL
Układ danych do konwersji wartości logicznych na/z wartości bajtów.
Ponieważ nie ma bufora logicznego Java NIO, ten układ jest szczególnie przydatny do mapowania wartości logicznych na standardowe bufory bajtowe. Konwersja między wartością logiczną a bajtem wymaga jawnego rzutowania typu.
publiczny statyczny końcowy FloatDataLayout < ShortDataBuffer > FLOAT16
Układ danych do konwersji 16-bitowych półzmiennych na/z krótkich wartości.
Połowy zmiennoprzecinkowe są przechowywane w pamięci zgodnie ze specyfikacją zmiennoprzecinkową o połowie precyzji IEEE-754 i są konwertowane do/z 32-bitowych zmiennoprzecinkowych w przestrzeni użytkownika.
Istnieje potencjalna utrata precyzji podczas konwersji pojedynczego elementu zmiennoprzecinkowego (32-bitowego) na połowę wartości zmiennoprzecinkowej (16-bitowa). Bezwzględny zakres wartości powyżej 0 dla połowy zmiennoprzecinkowej wynosi w przybliżeniu [5,96 × 10 -8 , 6,55 × 10 4 ], a ich część dziesiętna jest zaokrąglana w górę do 10-bitowej mantysy.
Ogólnie rzecz biorąc, obliczenia typu half-float działają lepiej na procesorach graficznych, ponieważ generalnie procesory nie obsługują natywnie tego formatu.
Konstruktorzy publiczni
publiczne DataLayouts ()
Metody publiczne
public static DataLayout < Bufor danych <bajt[]>, ciąg> ofStrings (zestaw znaków)
Tworzy układ danych do konwersji ciągów znaków na/z sekwencji bajtów.
Ten układ wymaga parametru charset
in, aby określić, w jaki sposób ciągi muszą być kodowane/dekodowane jako sekwencje bajtów. Dlatego zawsze zwracana jest nowa instancja układu.
Parametry
zestaw znaków | zestaw znaków do użycia |
---|
Powroty
- nowy układ ciągów