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