מחלקות משנה עקיפות ידועות |
ממשק למתורגמן של המודלים TensorFlow Lite, לא כולל שיטות ניסיוניות.
מכונה InterpreterApi
כוללת מודל TensorFlow Lite שעבר אימון מקדים, שבו
והפעולות מבוצעות לצורך הסקת מסקנות מהמודל.
לדוגמה, אם המודל מקבל רק קלט אחד ומחזיר רק פלט אחד:
try (InterpreterApi interpreter =
new InterpreterApi.create(file_of_a_tensorflowlite_model)) {
interpreter.run(input, output);
}
אם המודל מקבל כמה קלטים או פלטים:
Object[] inputs = {input0, input1, ...};
Map<Integer, Object> map_of_indices_to_outputs = new HashMap<>();
FloatBuffer ith_output = FloatBuffer.allocateDirect(3 * 2 * 4); // Float tensor, shape 3x2x4.
ith_output.order(ByteOrder.nativeOrder());
map_of_indices_to_outputs.put(i, ith_output);
try (InterpreterApi interpreter =
new InterpreterApi.create(file_of_a_tensorflowlite_model)) {
interpreter.runForMultipleInputsOutputs(inputs, map_of_indices_to_outputs);
}
אם המודל לוקח או מפיק מעבדי מחרוזות:
String[] input = {"foo", "bar"}; // Input tensor shape is [2].
String[][] output = new String[3][2]; // Output tensor shape is [3, 2].
try (InterpreterApi interpreter =
new InterpreterApi.create(file_of_a_tensorflowlite_model)) {
interpreter.runForMultipleInputsOutputs(input, output);
}
שימו לב שיש הבחנה בין צורה [] לצורה[1]. לטנזין של מחרוזת סקלרית פלט:
String[] input = {"foo"}; // Input tensor shape is [1].
ByteBuffer outputBuffer = ByteBuffer.allocate(OUTPUT_BYTES_SIZE); // Output tensor shape is [].
try (Interpreter interpreter = new Interpreter(file_of_a_tensorflowlite_model)) {
interpreter.runForMultipleInputsOutputs(input, outputBuffer);
}
byte[] outputBytes = new byte[outputBuffer.remaining()];
outputBuffer.get(outputBytes);
// Below, the `charset` can be StandardCharsets.UTF_8.
String output = new String(outputBytes, charset);
הסדר של נתוני הקלט והפלט נקבעים בהמרה של מודל TensorFlow ל-TensorFlowLite ב-Toco, וכך גם צורות ברירת המחדל של הקלט.
כאשר ערכי הקלט מוצגים כמערכים (רב-מימדיים), רכיבי הקלט המתאימים
לשנות את גודלן במרומז בהתאם לצורת המערך. כשמזינים ערכי קלט בתור סוגים של Buffer
, לא מתבצע שינוי גודל מרומז. מבצע הקריאה החוזרת חייב לוודא שהגודל של הבייטים Buffer
תואם לזה של הארגומנט התואם, או
שינוי גודל הטנזור דרך resizeInput(int, int[])
. פרטי הצורה והסוג של Tensor יכולים להיות
התקבל באמצעות המחלקה Tensor
, זמינה דרך getInputTensor(int)
ו-getOutputTensor(int)
.
אזהרה: מכונות InterpreterApi
לא בטוחות לשרשורים.
אזהרה: למכונה של InterpreterApi
יש משאבים שחייבים להיות
שוחרר באופן מפורש על ידי הפעלת close()
ספריית TFLite מבוססת על NDK API 19. יכול להיות שהתכונה תפעל גם ברמות API של Android מתחת ל-19, אבל הדבר לא מובטח.
מחלקות מקוננות
מחלקה | InterpreterApi.Options | סיווג אפשרויות לשליטה בהתנהגות של המתורגמן בסביבת זמן הריצה. |
שיטות ציבוריות
מופשט ריק |
allocateTensors()
מעדכן באופן מפורש את ההקצאות לכל הפרמטרים של Tensor, אם יש צורך.
|
מופשט ריק |
Close()
שחרור משאבים שמשויכים למכונה
InterpreterApi . |
סטטי InterpreterApi |
create(File modelFile, InterpreterApi.Options)
יוצרת מכונה של
InterpreterApi , באמצעות המודל והאפשרויות שצוינו. |
סטטי InterpreterApi |
create(ByteBuffer byteBuffer, InterpreterApi.Options)
יוצרת מכונה של
InterpreterApi , באמצעות המודל והאפשרויות שצוינו. |
מופשט INT | |
מופשט |