TensorBuffer

genel soyut sınıf TensorBuffer
Bilinen Doğrudan Alt Sınıflar

Bir modelin girişi veya çıkışı için veri arabelleğini temsil eder.

Genel Yöntemler

Statik TensorBuffer
createDynamic ( DataType dataType)
Belirtilen DataType ile boş bir dinamik TensorBuffer oluşturur.
Statik TensorBuffer
createFixedSize (int[] şekli, DataType dataType)
Belirtilen shape ve DataType ile bir TensorBuffer oluşturur.
Statik TensorBuffer
createFrom ( TensorBuffer tamponu, DataType dataType)
Belirtilen DataType ile başka birinden derin kopyalayan bir TensorBuffer verisi oluşturur.
Bayt Tamponu
getBuffer ()
Veri arabelleğini döndürür.
özet Veri Türü
getDataType ()
Bu arabelleğin veri türünü döndürür.
int
getFlatSize ()
Tamponun düzSize değerini alır.
soyut kayan nokta[]
getFloatArray ()
Bu arabellekte depolanan değerlerin kayan dizisini döndürür.
soyut kayan nokta
getFloatValue (int absIndex)
Belirli bir dizindeki kayan nokta değerini döndürür.
soyut int[]
getIntArray ()
Bu arabellekte depolanan değerlerin int dizisini döndürür.
soyut int
getIntValue (int absIndex)
Belirli bir dizindeki int değerini döndürür.
int[]
getShape ()
Geçerli şekli alır.
soyut int
getTypeSize ()
Dizideki tek bir öğenin bayt sayısını döndürür.
boolean
Dinamik ()
TensorBuffer dinamik boyutlu olup olmadığını döndürür (isteğe bağlı olarak yeniden boyutlandırılabilir).
soyut geçersiz
loadArray (int[] kaynak, int[] şekli)
Bu ara belleğe belirli bir şekle sahip bir int dizisi yükler.
soyut geçersiz
loadArray (float[] src, int[] şekli)
Bu ara belleğe belirli bir şekle sahip bir kayan dizi yükler.
geçersiz
loadArray (float[] kaynak)
Bu ara belleğe bir kayan dizi yükler.
geçersiz
loadArray (int[] kaynak)
Bu arabelleğe bir int dizisi yükler.
geçersiz
loadBuffer ( ByteBuffer arabelleği)
Bu TensorBuffer bir bayt arabelleği yükler.
geçersiz
loadBuffer ( ByteBuffer arabelleği, int[] şekli)
Bu TensorBuffer belirli bir şekle sahip bir bayt arabelleği yükler.

Kalıtsal Yöntemler

Genel Yöntemler

genel statik TensorBuffer createDynamic ( DataType dataType)

Belirtilen DataType ile boş bir dinamik TensorBuffer oluşturur. Oluşturulan TensorBuffer şekli {0}'dir.

Dinamik TensorBuffer'lar, farklı arabellek boyutlarındaki dizileri veya veri arabelleklerini yüklerken belleği yeniden tahsis edecektir. İşte bazı örnekler:

 // Creating a float dynamic TensorBuffer:
 TensorBuffer tensorBuffer = TensorBuffer.createDynamic(DataType.FLOAT32);
 // Loading a float array:
 float[] arr1 = new float[] {1, 2, 3};
 tensorBuffer.loadArray(arr, new int[] {arr1.length});
 // loading another float array:
 float[] arr2 = new float[] {1, 2, 3, 4, 5};
 tensorBuffer.loadArray(arr, new int[] {arr2.length});
 // loading a third float array with the same size as arr2, assuming shape doesn't change:
 float[] arr3 = new float[] {5, 4, 3, 2, 1};
 tensorBuffer.loadArray(arr);
 // loading a forth float array with different size as arr3 and omitting the shape will result
 // in error:
 float[] arr4 = new float[] {3, 2, 1};
 tensorBuffer.loadArray(arr); // Error: The size of byte buffer and the shape do not match.
 

Parametreler
veri tipi Oluşturulacak TensorBuffer dataType'ı.

public static TensorBuffer createFixedSize (int[] şekli, DataType dataType)

Belirtilen shape ve DataType ile bir TensorBuffer oluşturur. İşte bazı örnekler:

 // Creating a float TensorBuffer with shape {2, 3}:
 int[] shape = new int[] {2, 3};
 TensorBuffer tensorBuffer = TensorBuffer.createFixedSize(shape, DataType.FLOAT32);
 
 // Creating an uint8 TensorBuffer of a scalar:
 int[] shape = new int[] {};
 TensorBuffer tensorBuffer = TensorBuffer.createFixedSize(shape, DataType.UINT8);
 
 // Creating an empty uint8 TensorBuffer:
 int[] shape = new int[] {0};
 TensorBuffer tensorBuffer = TensorBuffer.createFixedSize(shape, DataType.UINT8);
 

Sabit boyutlu bir TensorBuffer'ın boyutu, oluşturulduktan sonra değiştirilemez.

Parametreler
şekil Oluşturulacak TensorBuffer şekli.
veri tipi Oluşturulacak TensorBuffer dataType'ı.
Atar
NullPointerException shape null ise.
YasadışıTartışmaİstisna shape pozitif olmayan öğeleri varsa.

genel statik TensorBuffer createFrom ( TensorBuffer arabelleği, DataType dataType)

Belirtilen DataType ile başka birinden derin kopyalayan bir TensorBuffer verisi oluşturur.

Parametreler
tampon kopyalanacak kaynak TensorBuffer .
veri tipi yeni oluşturulan TensorBuffer beklenen DataType .
Atar
NullPointerException buffer boşsa.

genel ByteBuffer getBuffer ()

Veri arabelleğini döndürür.

genel özet DataType getDataType ()

Bu arabelleğin veri türünü döndürür.

public int getFlatSize ()

Tamponun düzSize değerini alır.

Atar
Yasadışı Durum İstisnası temel veriler bozuksa

genel soyut kayan nokta[] getFloatArray ()

Bu arabellekte depolanan değerlerin kayan dizisini döndürür. Tamponun tipi float'tan farklıysa değerler float'a dönüştürülür. Örneğin, TensorBufferUint8 değerler uint8'den float'a dönüştürülecektir.

genel soyut kayan nokta getFloatValue (int absIndex)

Belirli bir dizindeki kayan nokta değerini döndürür. Tamponun tipi float'tan farklıysa değer float'a dönüştürülür. Örneğin, TensorBufferUint8 bir değer okunurken, değer önce uint8 olarak okunacak ve daha sonra uint8'den float'a dönüştürülecektir.

 For example, a TensorBuffer with shape {2, 3} that represents the following array,
 [[0.0f, 1.0f, 2.0f], [3.0f, 4.0f, 5.0f]].

 The fourth element (whose value is 3.0f) in the TensorBuffer can be retrieved by:
 float v = tensorBuffer.getFloatValue(3);
 

Parametreler
absIndex Okunacak değerin mutlak indeksi.

genel soyut int[] getIntArray ()

Bu arabellekte depolanan değerlerin int dizisini döndürür. Arabellek int'ten farklı türdeyse değerler int'ye dönüştürülür ve hassasiyet kaybı yaşanabilir. Örneğin, TensorBufferFloat {400.32f, 23.04f} değerlerine sahip bir int dizisi alındığında çıktı {400, 23} olur.

genel özet int getIntValue (int absIndex)

Belirli bir dizindeki int değerini döndürür. Arabellek int'ten farklı türdeyse değer int'ye dönüştürülür. Örneğin, TensorBufferFloat bir değer okunurken, değer önce float olarak okunacak, daha sonra floattan int'ye dönüştürülecektir. Hassasiyet kaybı söz konusu olabilir.

 For example, a TensorBuffer with shape {2, 3} that represents the following array,
 [[0.0f, 1.0f, 2.0f], [3.0f, 4.0f, 5.0f]].

 The fourth element (whose value is 3.0f) in the TensorBuffer can be retrieved by:
 int v = tensorBuffer.getIntValue(3);
 Note that v is converted from 3.0f to 3 as a result of type conversion.
 

Parametreler
absIndex Okunacak değerin mutlak indeksi.

genel int[] getShape ()

Geçerli şekli alır. (Beklenmeyen değişiklikleri önlemek için bir kopyayı buraya gönderiyorum.)

Atar
Yasadışı Durum İstisnası temel veriler bozuksa

genel soyut int getTypeSize ()

Dizideki tek bir öğenin bayt sayısını döndürür. Örneğin, kayan arabellek 4 değerini, bayt arabelleği ise 1 değerini döndürecektir.

genel boolean isDynamic ()

TensorBuffer dinamik boyutlu olup olmadığını döndürür (isteğe bağlı olarak yeniden boyutlandırılabilir).

genel soyut void loadArray (int[] src, int[] şekli)

Bu ara belleğe belirli bir şekle sahip bir int dizisi yükler. Arabellek int'den farklı türdeyse, değerler arabelleğe yüklenmeden önce arabelleğin türüne dönüştürülür ve hassasiyet kaybı söz konusu olabilir. Örneğin, {400, -23} değerlerine sahip bir int dizisini TensorBufferUint8 yüklerken, değerler [0, 255]'e sabitlenecek ve ardından {255, 0} tarafından uint8'e dönüştürülecektir.

Parametreler
kaynak Yüklenecek kaynak dizisi.
şekil src temsil ettiği tensörün şekli.
Atar
NullPointerException eğer src boşsa.
NullPointerException shape null ise.
YasadışıTartışmaİstisna yüklenecek dizinin boyutu belirtilen şekille eşleşmiyorsa.

genel soyut void loadArray (float[] src, int[] şekli)

Bu ara belleğe belirli bir şekle sahip bir kayan dizi yükler. Arabellek, kayan noktadan farklı türdeyse, değerler ara belleğe yüklenmeden önce arabelleğin türüne dönüştürülür ve hassasiyet kaybı söz konusu olabilir. Örneğin, {400.32f, -23.04f} değerlerine sahip bir TensorBufferUint8 bir float dizisi yüklendiğinde, değerler [0, 255]'e sabitlenecek ve ardından {255, 0} tarafından uint8'e dönüştürülecektir.

Parametreler
kaynak Yüklenecek kaynak dizisi.
şekil src temsil ettiği tensörün şekli.
Atar
NullPointerException eğer src boşsa.
NullPointerException shape null ise.
YasadışıTartışmaİstisna yüklenecek dizinin boyutu belirtilen şekille eşleşmiyorsa.

genel geçersiz loadArray (float[] src)

Bu ara belleğe bir kayan dizi yükler. Arabellek, kayan noktadan farklı türdeyse, değerler ara belleğe yüklenmeden önce arabelleğin türüne dönüştürülür ve hassasiyet kaybı söz konusu olabilir. Örneğin, {400.32f, -23.04f} değerlerine sahip bir TensorBufferUint8 bir float dizisi yüklendiğinde, değerler [0, 255]'e sabitlenecek ve ardından {255, 0} tarafından uint8'e dönüştürülecektir.

Bu yöntemin kullanılması, src şeklinin bu TensorBuffer şekliyle aynı olduğunu varsayar. Bu nedenle buffer boyutu ( src.length ), hem sabit boyutlu hem de dinamik TensorBuffer için her zaman bu TensorBuffer düz boyutuyla eşleşmelidir. src farklı bir şekle sahipse loadArray(float[], int[]) kullanın.

Parametreler
kaynak Yüklenecek kaynak dizisi.

genel geçersiz loadArray (int[] src)

Bu arabelleğe bir int dizisi yükler. Arabellek int'den farklı türdeyse, değerler arabelleğe yüklenmeden önce arabelleğin türüne dönüştürülür ve hassasiyet kaybı söz konusu olabilir. Örneğin, {400, -23} değerlerine sahip bir int dizisini TensorBufferUint8 yüklerken, değerler [0, 255]'e sabitlenecek ve ardından {255, 0} tarafından uint8'e dönüştürülecektir.

Bu yöntemin kullanılması, src şeklinin bu TensorBuffer şekliyle aynı olduğunu varsayar. Bu nedenle buffer boyutu ( src.length ), hem sabit boyutlu hem de dinamik TensorBuffer için her zaman bu TensorBuffer düz boyutuyla eşleşmelidir. src farklı bir şekle sahipse loadArray(int[], int[]) kullanın.

Parametreler
kaynak Yüklenecek kaynak dizisi.

genel geçersiz loadBuffer ( ByteBuffer arabelleği)

Bu TensorBuffer bir bayt arabelleği yükler. Arabellek boyutu bu TensorBuffer düz boyutuyla eşleşmelidir.

Bu yöntemin kullanılması, buffer şeklinin bu TensorBuffer şekliyle aynı olduğunu varsayar. Bu nedenle, hem sabit boyutlu hem de dinamik TensorBuffer için buffer boyutu ( buffer.limit() ), her zaman bu TensorBuffer düz boyutuyla eşleşmelidir. buffer farklı bir şekle sahipse loadBuffer(ByteBuffer, int[]) kullanın.

Önemli: Yüklenen arabellek bir referanstır. DEĞİŞİKLİK YAPMAYIN. Performans endişesi nedeniyle burada bir kopya oluşturmuyoruz, ancak değişiklik gerekiyorsa lütfen bir kopya oluşturun.

En iyi performans için her zaman doğrudan bir ByteBuffer veya bir dizi tarafından desteklenen bir ByteBuffer yükleyin.

buffer salt okunursa, performans için yazarken kopyala stratejisini benimseriz.

Parametreler
tampon Yüklenecek bayt arabelleği.

public void loadBuffer ( ByteBuffer tamponu, int[] şekli)

Bu TensorBuffer belirli bir şekle sahip bir bayt arabelleği yükler.

Önemli: Yüklenen arabellek bir referanstır. DEĞİŞİKLİK YAPMAYIN. Performans endişesi nedeniyle burada bir kopya oluşturmuyoruz, ancak değişiklik gerekiyorsa lütfen bir kopya oluşturun.

En iyi performans için her zaman doğrudan bir ByteBuffer veya bir dizi tarafından desteklenen bir ByteBuffer yükleyin.

Parametreler
tampon Yüklenecek bayt arabelleği.
şekil
Atar
NullPointerException buffer boşsa.
YasadışıTartışmaİstisna buffer ve typeSize boyutu eşleşmiyorsa veya buffer ve flatSize boyutu eşleşmiyorsa.