Doğrusal cebir hesaplamasında sıklıkla kullanılan veri formatlarının DataLayout
örneklerini ortaya çıkarır.
Kullanım örneği:
// 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());
Alanlar
genel statik final FloatDataLayout < ShortDataBuffer > | BFLOAT16 | 16 bitlik bfloat'ları kısa değerlerden/kısa değerlerden dönüştürmek için veri düzeni. |
genel statik final BooleanDataLayout < ByteDataBuffer > | BOOL | Boole değerlerini bayt değerlerine/bayt değerlerinden dönüştürmek için veri düzeni. |
genel statik final FloatDataLayout < ShortDataBuffer > | FLOAT16 | 16 bit yarım kayan değerleri kısa değerlerden/kısa değerlerden dönüştürmek için veri düzeni. |
Kamu İnşaatçıları
Genel Yöntemler
statik DataLayout < DataBuffer <byte[]>, String> | ofStrings (Karakter kümesi karakter kümesi) Dizeleri bayt dizilerine/bayt dizilerinden dönüştürmek için bir veri düzeni oluşturur. |
Kalıtsal Yöntemler
Alanlar
genel statik final FloatDataLayout < ShortDataBuffer > BFLOAT16
16 bitlik bfloat'ları kısa değerlerden/kısa değerlerden dönüştürmek için veri düzeni.
Bu format eskiden TensorFlow'a özeldi ancak artık makine öğrenimi alanında daha geniş çapta benimsendi. Tek duyarlıklı 32 bit kayan noktalarla, değerlerinin basitçe kaydırılması ve mantisin yalnızca 7 bit'e kısaltılmasıyla hızlı dönüşüm için optimize edilmiştir.
Bu nedenle, bu, IEEE-754 yarı duyarlıklı kayan nokta spesifikasyonuyla karşılaştırıldığında kesir kısmında bir hassasiyet kaybıdır (bkz. FLOAT16
, ancak 8 bitlik üssü koruduğu ve kullandığı için tüm kısımda daha geniş bir olası değer aralığına sahiptir. aynı önyargı (yani 0'ın üzerinde yaklaşık [ 10-40 , 3,39 × 1038 ] mutlak aralık)
Bazı CPU'lar daha iyi performans için bfloat16 formatını yerel olarak destekler.
genel statik final BooleanDataLayout < ByteDataBuffer > BOOL
Boole değerlerini bayt değerlerine/bayt değerlerinden dönüştürmek için veri düzeni.
Java NIO boole arabelleği olmadığından, bu düzen özellikle boole değerlerini standart bayt arabellekleriyle eşlemek için kullanışlıdır. Bir boole değeri ile bir bayt arasındaki dönüşüm, açık tip dönüşümü gerektirir.
genel statik final FloatDataLayout < ShortDataBuffer > FLOAT16
16 bit yarım kayan değerleri kısa değerlerden/kısa değerlerden dönüştürmek için veri düzeni.
Yarı kayan noktalar, IEEE-754 yarı duyarlı kayan nokta spesifikasyonuna uygun olarak bellekte saklanır ve kullanıcı alanında 32 bit kayan noktalara dönüştürülür.
Tek bir kayan noktayı (32 bit) yarım kayan noktaya (16 bit) dönüştürürken potansiyel bir hassasiyet kaybı vardır. Yarım kayan nokta için 0'ın üzerindeki değerlerin mutlak aralığı yaklaşık olarak [5,96 × 10-8 , 6,55 × 104 ]'tir ve ondalık kısımları 10 bitlik bir mantis'e yuvarlanır.
Genel olarak yarı kayan hesaplama GPU'larda daha iyi performans gösterir çünkü genel olarak CPU'lar bu formatı yerel olarak desteklemez.
Kamu İnşaatçıları
genel DataLayouts ()
Genel Yöntemler
public static DataLayout < DataBuffer <byte[]>, String> ofStrings (Karakter kümesi karakter kümesi)
Dizeleri bayt dizilerine/bayt dizilerinden dönüştürmek için bir veri düzeni oluşturur.
Bu düzen, dizelerin bayt dizileri olarak nasıl kodlanması/kodunun çözülmesi gerektiğini belirtmek için parametrede bir charset
gerektirir. Böylece her zaman yeni bir düzen örneği döndürülür.
Parametreler
karakter kümesi | kullanılacak karakter kümesi |
---|
İade
- yeni bir dize düzeni