DataLayouts

genel son sınıf DataLayouts

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 boolean 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ım 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
İadeler
  • yeni bir dize düzeni