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.

Herkese Açık Yöntemler

statik TensorBuffer
createDynamic(DataType dataType)
Belirtilen DataType ile boş bir dinamik TensorBuffer oluşturur.
statik TensorBuffer
createFixedSize(int[] şekil, DataType dataType)
Belirtilen shape ve DataType ile bir TensorBuffer oluşturur.
statik TensorBuffer
createFrom(TensorBuffer arabelleği, DataType dataType)
Belirtilen DataType ile başka bir veriden TensorBuffer derin kopyalama verileri oluşturur.
ByteBuffer
getBuffer()
Veri arabelleğini döndürür.
abstract DataType
getDataType()
Bu arabelleğin veri türünü döndürür.
int
getFlatSize()
Arabelleğin levelSize değerini alır.
soyut kayan noktalı[]
getFloatArray()
Bu arabellekte depolanan değerlerin kayan bir dizisini döndürür.
soyut kayan
getFloatValue(int absIndex)
Belirli bir dizinde kayan bir değer döndürür.
soyut int[]
getIntArray()
Bu arabellekte depolanan değerlerin tam dizisini döndürür.
soyut int
getIntValue(int absIndex)
Belirli bir dizinde bir int değeri 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
isDynamic()
TensorBuffer dinamik boyutluysa (isteğe bağlı olarak yeniden boyutlandırılabilir) bunu döndürür.
soyut geçersiz
loadArray(int[] src; int[] şekli)
Bu arabelleğe belirli bir şekle sahip bir int dizisi yükler.
soyut geçersiz
loadArray(kayan[] src, int[] şekli)
Bu arabelleğe belirli bir şekle sahip kayan diziyi yükler.
void
loadArray(kayan[] src)
Bu arabelleğe bir kayan dizi yükler.
void
loadArray(int[] src)
Bu arabelleğe bir int dizisi yükler.
void
loadBuffer(ByteBuffer arabelleği)
Bu TensorBuffer öğesine bir bayt arabelleği yükler.
void
loadBuffer(ByteBuffer arabelleği, int[] şekli)
Belirli bir şekle sahip bu TensorBuffer öğesine bir bayt arabelleği yükler.

Devralınan Yöntemler

Herkese Açık Yöntemler

herkese açık statik TensorBuffer createDynamic (DataType dataType)

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

Dinamik TensorBuffers, farklı arabellek boyutlarındaki dizileri veya veri arabelleklerini yüklerken belleği yeniden ayırır. 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
dataType Oluşturulacak TensorBuffer öğesinin dataType öğesi.

herkese açık statik TensorBuffer createFixedSize (int[] shape, DataType dataType)

Belirtilen shape ve DataType ile bir TensorBuffer oluşturur. Aşağıda birkaç örnek verilmiştir:

 // 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 TensorBuffer'ın boyutu oluşturulduktan sonra değiştirilemez.

Parametreler
shape Oluşturulacak TensorBuffer şekli.
dataType Oluşturulacak TensorBuffer öğesinin dataType öğesi.
Dekoratif yastıklar
NullPointerException shape null ise.
IllegalArgumentException shape pozitif olmayan öğelere sahipse

herkese açık statik TensorBuffer createFrom (TensorBuffer arabelleği, DataType dataType)

Belirtilen DataType ile başka bir veriden TensorBuffer derin kopyalama verileri oluşturur.

Parametreler
tampon kopyalanacak kaynak TensorBuffer.
dataType yeni oluşturulan TensorBuffer için beklenen DataType.
Dekoratif yastıklar
NullPointerException buffer null ise.

herkese açık ByteBuffer getBuffer ()

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

herkese açık abstract DataType getDataType ()

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

herkese açık int getFlatSize ()

Arabelleğin levelSize değerini alır.

Dekoratif yastıklar
IllegalStateException temel veriler bozuksa

herkese açık soyut float[] getFloatArray ()

Bu arabellekte depolanan değerlerin kayan bir dizisini döndürür. Tampon, kayan öğeden farklı türlerdeyse değerler kayan noktalı değere dönüştürülür. Örneğin, TensorBufferUint8 içindeki değerler uint8 değerinden hareketli değerine dönüştürülür.

herkese açık soyut kayan nokta getFloatValue (int absIndex)

Belirli bir dizinde kayan bir değer döndürür. Tampon, kayan öğeden farklı türlerdeyse değer, hareketli değere dönüştürülür. Örneğin, TensorBufferUint8 öğesinden bir değer okunurken, değer önce uint8 olarak okunur, ardından uint8'den float'a dönüştürülür.

 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 dizini.

genel soyut int[] getIntArray ()

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

herkese açık abstract int getIntValue (int absIndex)

Belirli bir dizinde bir int değeri döndürür. Tampon, int'ten farklı türlerdeyse değer, int'e dönüştürülür. Örneğin, TensorBufferFloat değerinden bir değer okunurken değer önce kayan noktalı olarak okunur, ardından kayan öğeden int'e dönüştürülür. 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 dizini.

herkese açık int[] getShape ()

Geçerli şekli alır. (Beklenmeyen değişiklikten kaçınmak için bir kopyasını buraya geri döndürüyoruz.)

Dekoratif yastıklar
IllegalStateException temel veriler bozuksa

herkese açık abstract int getTypeSize ()

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

herkese açık boole isDynamic ()

TensorBuffer dinamik boyutluysa (isteğe bağlı olarak yeniden boyutlandırılabilir) bunu döndürür.

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

Bu arabelleğe belirli bir şekle sahip bir int dizisi yükler. Tampon, int'ten farklı türlerdeyse değerler, arabelleğe yüklenmeden önce arabelleğin türüne dönüştürülür ve kesinlik kaybı uygulanabilir. Örneğin, {400, -23} değerlerine sahip bir tam diziyi TensorBufferUint8 içine yüklerseniz değerler [0, 255] olarak sabitlenir ve ardından {255, 0} tarafından uint8'e yayınlanır.

Parametreler
src Yüklenecek kaynak dizi.
shape src tarafından temsil edilen tensörün şekli.
Dekoratif yastıklar
NullPointerException src null ise.
NullPointerException shape null ise.
IllegalArgumentException değeri, yüklenecek dizinin boyutu belirtilen şekille eşleşmezse

herkese açık soyut void loadArray (float[] src, int[] şekil)

Bu arabelleğe belirli bir şekle sahip kayan diziyi yükler. Tampon, kayan öğeden farklı türdeyse değerler, arabelleğe yüklenmeden önce arabelleğin türüne dönüştürülür ve kesinlik kaybı uygulanabilir. Örneğin, {400.32f, -23.04f} değerlerine sahip bir TensorBufferUint8 içine bir kayan dizi yüklendiğinde, değerler [0, 255] olarak sabitlenir ve ardından {255, 0} tarafından uint8'e yayınlanır.

Parametreler
src Yüklenecek kaynak dizi.
shape src tarafından temsil edilen tensörün şekli.
Dekoratif yastıklar
NullPointerException src null ise.
NullPointerException shape null ise.
IllegalArgumentException değeri, yüklenecek dizinin boyutu belirtilen şekille eşleşmezse

herkese açık void loadArray (float[] src)

Bu arabelleğe bir kayan dizi yükler. Tampon, kayan öğeden farklı türdeyse değerler, arabelleğe yüklenmeden önce arabelleğin türüne dönüştürülür ve kesinlik kaybı uygulanabilir. Örneğin, {400.32f, -23.04f} değerlerine sahip bir TensorBufferUint8 içine bir kayan dizi yüklendiğinde, değerler [0, 255] olarak sabitlenir ve ardından {255, 0} tarafından uint8'e yayınlanır.

Bu yöntem kullanıldığında, src şeklinin bu TensorBuffer şekliyle aynı olduğu varsayılır. Bu nedenle, hem sabit boyutlu hem de dinamik TensorBuffer için buffer (src.length) boyutu her zaman bu TensorBuffer öğesinin düz boyutuyla eşleşmelidir. src farklı bir şekle sahipse loadArray(float[], int[]) öğesini kullanın.

Parametreler
src Yüklenecek kaynak dizi.

herkese açık void loadArray (int[] src)

Bu arabelleğe bir int dizisi yükler. Tampon, int'ten farklı türlerdeyse değerler, arabelleğe yüklenmeden önce arabelleğin türüne dönüştürülür ve kesinlik kaybı uygulanabilir. Örneğin, {400, -23} değerlerine sahip bir tam diziyi TensorBufferUint8 içine yüklerseniz değerler [0, 255] olarak sabitlenir ve ardından {255, 0} tarafından uint8'e yayınlanır.

Bu yöntem kullanıldığında, src şeklinin bu TensorBuffer şekliyle aynı olduğu varsayılır. Bu nedenle, hem sabit boyutlu hem de dinamik TensorBuffer için buffer (src.length) boyutu her zaman bu TensorBuffer öğesinin düz boyutuyla eşleşmelidir. src farklı bir şekle sahipse loadArray(int[], int[]) öğesini kullanın.

Parametreler
src Yüklenecek kaynak dizi.

herkese açık void loadBuffer (ByteBuffer arabelleği)

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

Bu yöntem kullanıldığında, buffer şeklinin bu TensorBuffer şekliyle aynı olduğu varsayılır. Bu nedenle, hem sabit boyutlu hem de dinamik TensorBuffer için buffer (buffer.limit()) boyutu her zaman bu TensorBuffer öğesinin düz boyutuyla eşleşmelidir. buffer farklı bir şekle sahipse loadBuffer(ByteBuffer, int[]) öğesini kullanın.

Önemli: Yüklenen arabellek bir referans. DEĞİŞTİRMEYİN. Performansla ilgili endişe 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 ByteBuffer veya bir dizi tarafından desteklenen ByteBuffer yükleyin.

buffer salt okunursa performans için "yazılırken kopyalama" stratejisini uyguluyoruz.

Parametreler
tampon Yüklenecek bayt arabelleği.

herkese açık void loadBuffer (ByteBuffer arabelleği, int[] şekli)

Belirli bir şekle sahip bu TensorBuffer öğesine bir bayt arabelleği yükler.

Önemli: Yüklenen arabellek bir referans. DEĞİŞTİRMEYİN. Performansla ilgili endişe 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 ByteBuffer veya bir dizi tarafından desteklenen ByteBuffer yükleyin.

Parametreler
tampon Yüklenecek bayt arabelleği.
shape
Dekoratif yastıklar
NullPointerException buffer null ise.
IllegalArgumentException buffer ve typeSize boyutları eşleşmiyorsa veya buffer ile flatSize eşleşmiyor.