תת-מחלקות ישירות ידועות |
מייצג את מאגר הנתונים עבור הקלט של המודל או הפלט שלו.
שיטות ציבוריות
TensorBuffer סטטי | |
TensorBuffer סטטי | |
TensorBuffer סטטי | createFrom (מאגר TensorBuffer , DataType dataType) יוצר TensorBuffer העתקה עמוקה של נתונים מאחר, עם DataType שצוין. |
ByteBuffer | getBuffer () מחזיר את מאגר הנתונים. |
תקציר DataType | getDataType () מחזירה את סוג הנתונים של מאגר זה. |
int | getFlatSize () מקבל את ה-flatSize של המאגר. |
צף מופשט[] | getFloatArray () מחזירה מערך צף של הערכים המאוחסנים במאגר זה. |
לצוף מופשט | getFloatValue (int absIndex) מחזירה ערך צף באינדקס נתון. |
מופשט int[] | getIntArray () מחזירה מערך int של הערכים המאוחסנים במאגר זה. |
מופשט int | getIntValue (int absIndex) מחזירה ערך int באינדקס נתון. |
int[] | getShape () מקבל את הצורה הנוכחית. |
מופשט int | getTypeSize () מחזירה את מספר הבתים של אלמנט בודד במערך. |
בוליאני | isDynamic () מחזירה אם ה- TensorBuffer הוא בגודל דינמי (יכול לשנות את הגודל באופן שרירותי). |
ריק מופשט | loadArray (int[] src, int[] shape) טוען מערך int לתוך המאגר הזה עם צורה ספציפית. |
ריק מופשט | loadArray (float[] src, int[] shape) טוען מערך צף לתוך המאגר הזה עם צורה ספציפית. |
בָּטֵל | loadArray (float[] src) טוען מערך צף לתוך המאגר הזה. |
בָּטֵל | loadArray (int[] src) טוען מערך int לתוך המאגר הזה. |
בָּטֵל | |
בָּטֵל |
שיטות בירושה
שיטות ציבוריות
ציבורי סטטי TensorBuffer createDynamic ( DataType dataType)
יוצר TensorBuffer
דינמי ריק עם DataType
שצוין. הצורה של TensorBuffer
שנוצר היא {0}.
דינמי TensorBuffers יקצה מחדש זיכרון בעת טעינת מערכים או מאגרי נתונים בגדלים שונים של מאגר. הנה כמה דוגמאות:
// 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.
פרמטרים
סוג מידע | ה-dataType של TensorBuffer שייווצר. |
---|
ציבורי סטטי TensorBuffer createFixedSize (צורה int[], DataType dataType)
יוצר TensorBuffer
עם shape
ו- DataType
שצוינו. הנה כמה דוגמאות:
// 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);
לא ניתן לשנות את הגודל של TensorBuffer בגודל קבוע לאחר יצירתו.
פרמטרים
צוּרָה | צורת ה- TensorBuffer שייווצר. |
---|---|
סוג מידע | ה-dataType של TensorBuffer שייווצר. |
זורק
NullPointerException | אם shape היא אפסית. |
---|---|
חריג טיעון לא חוקי | אם shape יש אלמנטים לא חיוביים. |
ציבורי סטטי TensorBuffer createFrom (מאגר TensorBuffer , DataType dataType)
יוצר TensorBuffer
העתקה עמוקה של נתונים מאחר, עם DataType
שצוין.
פרמטרים
בַּלָם | המקור TensorBuffer להעתיק ממנו. |
---|---|
סוג מידע | ה- DataType הצפוי של TensorBuffer החדש שנוצר. |
זורק
NullPointerException | אם buffer הוא ריק. |
---|
public int getFlatSize ()
מקבל את ה-flatSize של המאגר.
זורק
חריגה של מדינה בלתי חוקית | אם הנתונים הבסיסיים פגומים |
---|
public abstract float[] getFloatArray ()
מחזירה מערך צף של הערכים המאוחסנים במאגר זה. אם המאגר הוא מסוגים שונים מ-float, הערכים יומרו ל-float. לדוגמה, ערכים ב- TensorBufferUint8
יומרו מ-uint8 ל-float.
תקציר ציבורי צף getFloatValue (int absIndex)
מחזירה ערך צף באינדקס נתון. אם המאגר הוא מסוגים שונים מ-float, הערך יומר ל-float. לדוגמה, בעת קריאת ערך מ- TensorBufferUint8
, הערך ייקרא תחילה כ-uint8, ולאחר מכן יומר מ-uint8 ל-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);
פרמטרים
absIndex | האינדקס המוחלט של הערך שיש לקרוא. |
---|
תקציר ציבורי int[] getIntArray ()
מחזירה מערך int של הערכים המאוחסנים במאגר זה. אם המאגר הוא מסוג שונה מ-int, הערכים יומרו ל-int, וייתכן שיחול אובדן דיוק. לדוגמה, קבלת מערך int מ- TensorBufferFloat
עם הערכים {400.32f, 23.04f}, הפלט הוא {400, 23}.
תקציר ציבורי int getIntValue (int absIndex)
מחזירה ערך int באינדקס נתון. אם המאגר הוא מסוגים שונים מ-int, הערך יומר ל-int. לדוגמה, בעת קריאת ערך מ- TensorBufferFloat
, הערך ייקרא תחילה כ-float, ולאחר מכן יומר מ-float ל-int. אובדן דיוק עשוי לחול.
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.
פרמטרים
absIndex | האינדקס המוחלט של הערך שיש לקרוא. |
---|
public int[] getShape ()
מקבל את הצורה הנוכחית. (החזרת עותק כאן כדי למנוע שינויים בלתי צפויים.)
זורק
חריגה של מדינה בלתי חוקית | אם הנתונים הבסיסיים פגומים |
---|
תקציר ציבורי int getTypeSize ()
מחזירה את מספר הבתים של אלמנט בודד במערך. לדוגמה, מאגר צף יחזיר 4, ומאגר בתים יחזיר 1.
בוליאני ציבורי הוא דינמי ()
מחזירה אם ה- TensorBuffer
הוא בגודל דינמי (יכול לשנות את הגודל באופן שרירותי).
public abstract void loadArray (int[] src, int[] shape)
טוען מערך int לתוך המאגר הזה עם צורה ספציפית. אם המאגר הוא מסוגים שונים מ-int, הערכים יומרו לסוג המאגר לפני הטעינה למאגר, וייתכן שיחול אובדן דיוק. לדוגמה, טעינת מערך int עם ערכים {400, -23} לתוך TensorBufferUint8
, הערכים יוצמדו ל-[0, 255] ולאחר מכן יוזרקו ל-uint8 על ידי {255, 0}.
פרמטרים
src | מערך המקור שיש לטעון. |
---|---|
צוּרָה | צורת הטנזור ש- src מייצג. |
זורק
NullPointerException | אם src הוא null. |
---|---|
NullPointerException | אם shape היא אפסית. |
חריג טיעון לא חוקי | אם גודל המערך לטעינה אינו תואם לצורה שצוינה. |
public abstract void loadArray (float[] src, int[] shape)
טוען מערך צף לתוך המאגר הזה עם צורה ספציפית. אם המאגר הוא מסוגים שונים מ-float, הערכים יומרו לסוג המאגר לפני הטעינה למאגר, ויתכן ויחול אובדן דיוק. לדוגמה, טעינת מערך צף לתוך TensorBufferUint8
עם הערכים {400.32f, -23.04f}, הערכים יוצמדו ל-[0, 255] ולאחר מכן יועברו ל-uint8 ב-{255, 0}.
פרמטרים
src | מערך המקור שיש לטעון. |
---|---|
צוּרָה | צורת הטנזור ש- src מייצג. |
זורק
NullPointerException | אם src הוא null. |
---|---|
NullPointerException | אם shape היא אפסית. |
חריג טיעון לא חוקי | אם גודל המערך לטעינה אינו תואם לצורה שצוינה. |
public void loadArray (float[] src)
טוען מערך צף לתוך המאגר הזה. אם המאגר הוא מסוגים שונים מ-float, הערכים יומרו לסוג המאגר לפני הטעינה למאגר, ויתכן ויחול אובדן דיוק. לדוגמה, טעינת מערך צף לתוך TensorBufferUint8
עם הערכים {400.32f, -23.04f}, הערכים יוצמדו ל-[0, 255] ולאחר מכן יועברו ל-uint8 ב-{255, 0}.
שימוש בשיטה זו מניח שהצורה של src
זהה לצורתו של TensorBuffer
זה. לפיכך, גודל buffer
( src.length
) צריך תמיד להתאים לגודל השטוח של TensorBuffer
זה, הן עבור TensorBuffer בגודל קבוע והן עבור TensorBuffer
דינמי. השתמש loadArray(float[], int[])
אם src
יש צורה שונה.
פרמטרים
src | מערך המקור שיש לטעון. |
---|
public void loadArray (int[] src)
טוען מערך int לתוך המאגר הזה. אם המאגר הוא מסוגים שונים מ-int, הערכים יומרו לסוג המאגר לפני הטעינה למאגר, וייתכן שיחול אובדן דיוק. לדוגמה, טעינת מערך int עם ערכים {400, -23} לתוך TensorBufferUint8
, הערכים יוצמדו ל-[0, 255] ולאחר מכן יוזרקו ל-uint8 על ידי {255, 0}.
שימוש בשיטה זו מניח שהצורה של src
זהה לצורתו של TensorBuffer
זה. לפיכך, גודל buffer
( src.length
) צריך תמיד להתאים לגודל השטוח של TensorBuffer
זה, הן עבור TensorBuffer בגודל קבוע והן עבור TensorBuffer
דינמי. השתמש loadArray(int[], int[])
אם src
יש צורה אחרת.
פרמטרים
src | מערך המקור שיש לטעון. |
---|
public void loadBuffer (buffer ByteBuffer )
טוען מאגר בתים לתוך TensorBuffer
זה. גודל המאגר חייב להתאים לגודל השטוח של TensorBuffer
זה.
שימוש בשיטה זו מניח שצורת buffer
זהה לצורתו של TensorBuffer
זה. לפיכך גודל buffer
( buffer.limit()
) צריך תמיד להתאים לגודל השטוח של TensorBuffer
זה, הן עבור TensorBuffer בגודל קבוע והן עבור TensorBuffer
דינמי. השתמש loadBuffer(ByteBuffer, int[])
אם buffer
יש צורה שונה.
חשוב: המאגר הנטען הוא הפניה. אל תשנה. אנחנו לא יוצרים כאן עותק מחשש לביצועים, אבל אם יש צורך בשינוי, אנא צור עותק.
לקבלת הביצועים הטובים ביותר, טען תמיד ByteBuffer
ישיר או ByteBuffer
מגובה על ידי מערך.
אם buffer
הוא לקריאה בלבד, אנו מאמצים אסטרטגיית העתקה על כתיבה לביצועים.
פרמטרים
בַּלָם | מאגר הבתים לטעינה. |
---|
public void loadBuffer ( ByteBuffer buffer, int[] shape)
טוען מאגר בתים לתוך TensorBuffer
זה עם צורה ספציפית.
חשוב: המאגר הנטען הוא הפניה. אל תשנה. אנחנו לא יוצרים כאן עותק מחשש לביצועים, אבל אם יש צורך בשינוי, אנא צור עותק.
לקבלת הביצועים הטובים ביותר, טען תמיד ByteBuffer
ישיר או ByteBuffer
מגובה על ידי מערך.
פרמטרים
בַּלָם | מאגר הבתים לטעינה. |
---|---|
צוּרָה |
זורק
NullPointerException | אם buffer הוא ריק. |
---|---|
חריג טיעון לא חוקי | אם הגודל של buffer ו- typeSize אינם תואמים או שהגודל של buffer ו- flatSize אינם תואמים. |