TensorBuffer

klasa abstrakte publike TensorBuffer
Nënklasa të njohura direkte

Përfaqëson buferin e të dhënave ose për hyrjen ose daljen e një modeli.

Metodat publike

TensorBuffer statik
CreativeDynamic ( Type DataType )
Krijon një TensorBuffer dinamik bosh me DataType të specifikuar.
TensorBuffer statik
createFixedSize (formë int[], Lloji i të Dhënave Type)
Krijon një TensorBuffer me shape dhe DataType të specifikuar.
TensorBuffer statik
CreativeFrom ( TensorBuffer buffer, DataType DataType)
Krijon një të dhënë me kopjim të thellë TensorBuffer nga një tjetër, me DataType të specifikuar.
ByteBuffer
getBuffer ()
Kthen buferin e të dhënave.
Abstrakt Lloji i të Dhënave
getDataType ()
Rikthen llojin e të dhënave të këtij buffer.
int
getFlatSize ()
Merr madhësinë e sheshtë të tamponit.
noton abstrakte[]
getFloatArray ()
Kthen një grup float të vlerave të ruajtura në këtë buffer.
noton abstrakte
getFloatValue (int absIndex)
Kthen një vlerë float në një indeks të caktuar.
int abstrakte[]
getIntArray ()
Kthen një grup int të vlerave të ruajtura në këtë buffer.
abstrakte int
getIntValue (int absIndex)
Kthen një vlerë int në një indeks të caktuar.
int[]
getShape ()
Merr formën aktuale.
abstrakte int
getTypeSize ()
Rikthen numrin e bajteve të një elementi të vetëm në grup.
logjike
ështëDynamic ()
Kthehet nëse TensorBuffer është me madhësi dinamike (mund të ndryshojë madhësinë në mënyrë arbitrare).
zbrazëti abstrakte
loadArray (int[] src, forma int[])
Ngarkon një grup int në këtë buffer me formë specifike.
zbrazëti abstrakte
loadArray (float[] src, forma int[])
Ngarkon një grup float në këtë bufer me formë specifike.
i pavlefshëm
loadArray (float[] src)
Ngarkon një grup float në këtë buffer.
i pavlefshëm
loadArray (int[] src)
Ngarkon një grup int në këtë buffer.
i pavlefshëm
loadBuffer ( ByteBuffer buffer)
Ngarkon një buffer bajt në këtë TensorBuffer .
i pavlefshëm
loadBuffer (bufer ByteBuffer , formë int[])
Ngarkon një buffer bajt në këtë TensorBuffer me formë specifike.

Metodat e trashëguara

Metodat publike

publik statik TensorBuffer createDynamic (Type DataType )

Krijon një TensorBuffer dinamik bosh me DataType të specifikuar. Forma e TensorBuffer it të krijuar është {0}.

Dynamic TensorBuffers do të rishpërndajnë memorien kur ngarkojnë vargje ose bufera të dhënash me madhësi të ndryshme buferi. Këtu janë disa shembuj:

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

Parametrat
Lloji i të dhënave Lloji i të dhënave të TensorBuffer që do të krijohet.

publik statik TensorBuffer createFixedSize (formë int[], Data Type Type)

Krijon një TensorBuffer me shape dhe DataType të specifikuar. Këtu janë disa shembuj:

 // 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);
 

Madhësia e një TensorBuffer me madhësi fikse nuk mund të ndryshohet pasi të krijohet.

Parametrat
formë Forma e TensorBuffer që do të krijohet.
Lloji i të dhënave Lloji i të dhënave të TensorBuffer që do të krijohet.
Hedhjet
NullPointerException nëse shape është e pavlefshme.
IllegalArgumentPërjashtim nëse shape ka elemente jo pozitive.

publike statike TensorBuffer krijuarNga ( TensorBuffer buffer, DataType DataType)

Krijon një të dhënë me kopjim të thellë TensorBuffer nga një tjetër, me DataType të specifikuar.

Parametrat
tampon burimi TensorBuffer për të kopjuar.
Lloji i të dhënave Lloji i pritur DataType i TensorBuffer it të sapokrijuar.
Hedhjet
NullPointerException nëse buffer është null.

publike ByteBuffer getBuffer ()

Kthen buferin e të dhënave.

abstrakt publik DataType getDataType ()

Rikthen llojin e të dhënave të këtij buffer.

publike int getFlatSize ()

Merr madhësinë e sheshtë të tamponit.

Hedhjet
IllegalStateException nëse të dhënat themelore janë të korruptuara

float abstrakt publik[] getFloatArray ()

Kthen një grup float të vlerave të ruajtura në këtë buffer. Nëse buferi është i llojeve të ndryshme nga float, vlerat do të konvertohen në float. Për shembull, vlerat në TensorBufferUint8 do të konvertohen nga uint8 në float.

float abstrakt publik getFloatValue (int absIndex)

Kthen një vlerë float në një indeks të caktuar. Nëse buferi është i llojeve të ndryshme nga float, vlera do të konvertohet në float. Për shembull, kur lexoni një vlerë nga TensorBufferUint8 , vlera fillimisht do të lexohet si uint8 dhe më pas do të konvertohet nga uint8 në float.

 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);
 

Parametrat
absIndeksi Indeksi absolut i vlerës që duhet lexuar.

abstrakt publik int[] getIntArray ()

Kthen një grup int të vlerave të ruajtura në këtë buffer. Nëse buferi është i llojit të ndryshëm nga int, vlerat do të konvertohen në int dhe mund të zbatohet humbja e saktësisë. Për shembull, duke marrë një grup int nga një TensorBufferFloat me vlera {400.32f, 23.04f}, dalja është {400, 23}.

abstrakt publik int getIntValue (int absIndex)

Kthen një vlerë int në një indeks të caktuar. Nëse buferi është i llojeve të ndryshme nga int, vlera do të konvertohet në int. Për shembull, kur lexoni një vlerë nga TensorBufferFloat , vlera fillimisht do të lexohet si float dhe më pas do të konvertohet nga float në int. Mund të ketë humbje të saktësisë.

 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.
 

Parametrat
absIndeksi Indeksi absolut i vlerës që duhet lexuar.

publike int[] getShape ()

Merr formën aktuale. (duke kthyer një kopje këtu për të shmangur modifikimin e papritur.)

Hedhjet
IllegalStateException nëse të dhënat themelore janë të korruptuara

abstrakt publik int getTypeSize ()

Rikthen numrin e bajteve të një elementi të vetëm në grup. Për shembull, një buffer float do të kthejë 4, dhe një buffer byte do të kthejë 1.

boolean publik ështëDynamic ()

Kthehet nëse TensorBuffer është me madhësi dinamike (mund të ndryshojë madhësinë në mënyrë arbitrare).

abstrakt publik void loadArray (int[] src, forma int[])

Ngarkon një grup int në këtë buffer me formë specifike. Nëse buferi është i llojeve të ndryshme nga int, vlerat do të konvertohen në llojin e buferit përpara se të ngarkohen në tampon dhe mund të ketë humbje të saktësisë. Për shembull, duke ngarkuar një grup int me vlerat {400, -23} në një TensorBufferUint8 , vlerat do të mbërthehen në [0, 255] dhe më pas do të transferohen në uint8 nga {255, 0}.

Parametrat
src Vargu burimor që do të ngarkohet.
formë Forma e tensorit që përfaqëson src .
Hedhjet
NullPointerException nëse src është null.
NullPointerException nëse shape është e pavlefshme.
IllegalArgumentPërjashtim nëse madhësia e grupit që do të ngarkohet nuk përputhet me formën e specifikuar.

abstrakt publik void loadArray (float[] src, forma int[])

Ngarkon një grup float në këtë bufer me formë specifike. Nëse buferi është i llojeve të ndryshme nga float, vlerat do të konvertohen në llojin e tamponit përpara se të ngarkohen në tampon dhe mund të ketë humbje të saktësisë. Për shembull, duke ngarkuar një grup float në një TensorBufferUint8 me vlerat {400.32f, -23.04f}, vlerat do të mbërthehen në [0, 255] dhe më pas do të transferohen në uint8 nga {255, 0}.

Parametrat
src Vargu burimor që do të ngarkohet.
formë Forma e tensorit që përfaqëson src .
Hedhjet
NullPointerException nëse src është null.
NullPointerException nëse shape është e pavlefshme.
IllegalArgumentPërjashtim nëse madhësia e grupit që do të ngarkohet nuk përputhet me formën e specifikuar.

loadarray publik void (float[] src)

Ngarkon një grup float në këtë buffer. Nëse buferi është i llojeve të ndryshme nga float, vlerat do të konvertohen në llojin e tamponit përpara se të ngarkohen në tampon dhe mund të ketë humbje të saktësisë. Për shembull, duke ngarkuar një grup float në një TensorBufferUint8 me vlerat {400.32f, -23.04f}, vlerat do të mbërthehen në [0, 255] dhe më pas do të transferohen në uint8 nga {255, 0}.

Përdorimi i kësaj metode supozon se forma e src është e njëjtë me formën e këtij TensorBuffer . Kështu, madhësia e buffer ( src.length ) duhet të përputhet gjithmonë me madhësinë e sheshtë të këtij TensorBuffer , si për TensorBuffer me madhësi fikse ashtu edhe për dinamikë. Përdorni loadArray(float[], int[]) nëse src ka një formë tjetër.

Parametrat
src Vargu burimor që do të ngarkohet.

publik void loadArray (int[] src)

Ngarkon një grup int në këtë buffer. Nëse buferi është i llojeve të ndryshme nga int, vlerat do të konvertohen në llojin e buferit përpara se të ngarkohen në tampon dhe mund të ketë humbje të saktësisë. Për shembull, duke ngarkuar një grup int me vlerat {400, -23} në një TensorBufferUint8 , vlerat do të mbërthehen në [0, 255] dhe më pas do të transferohen në uint8 nga {255, 0}.

Përdorimi i kësaj metode supozon se forma e src është e njëjtë me formën e këtij TensorBuffer . Kështu, madhësia e buffer ( src.length ) duhet të përputhet gjithmonë me madhësinë e sheshtë të këtij TensorBuffer , si për TensorBuffer me madhësi fikse ashtu edhe për dinamikë. Përdorni loadArray(int[], int[]) nëse src ka një formë tjetër.

Parametrat
src Vargu burimor që do të ngarkohet.

loadBuffer publik void (buffer ByteBuffer )

Ngarkon një buffer bajt në këtë TensorBuffer . Madhësia e buferit duhet të përputhet me madhësinë e sheshtë të këtij TensorBuffer .

Përdorimi i kësaj metode supozon se forma e buffer është e njëjtë me formën e këtij TensorBuffer . Kështu, madhësia e buffer ( buffer.limit() ) duhet të përputhet gjithmonë me madhësinë e sheshtë të këtij TensorBuffer , si për TensorBuffer me madhësi fikse ashtu edhe për dinamikë. Përdorni loadBuffer(ByteBuffer, int[]) nëse buffer ka një formë tjetër.

E rëndësishme: Buferi i ngarkuar është një referencë. MOS MODIFIKOHET. Ne nuk krijojmë një kopje këtu për shqetësimin e performancës, por nëse modifikimi është i nevojshëm, ju lutemi bëni një kopje.

Për performancën më të mirë, ngarkoni gjithmonë një ByteBuffer të drejtpërdrejtë ose një ByteBuffer të mbështetur nga një grup.

Nëse buffer është vetëm për lexim, ne miratojmë një strategji kopje-në-shkrim për performancën.

Parametrat
tampon Buferi i bajtit për t'u ngarkuar.

publik void loadBuffer (buffer ByteBuffer , formë int[])

Ngarkon një buffer bajt në këtë TensorBuffer me formë specifike.

E rëndësishme: Buferi i ngarkuar është një referencë. MOS MODIFIKOHET. Ne nuk krijojmë një kopje këtu për shqetësimin e performancës, por nëse modifikimi është i nevojshëm, ju lutemi bëni një kopje.

Për performancën më të mirë, ngarkoni gjithmonë një ByteBuffer të drejtpërdrejtë ose një ByteBuffer të mbështetur nga një grup.

Parametrat
tampon Buferi i bajtit për t'u ngarkuar.
formë
Hedhjet
NullPointerException nëse buffer është null.
IllegalArgumentPërjashtim nëse madhësia e buffer dhe typeSize nuk përputhen ose madhësia e buffer dhe flatSize nuk përputhen.