Subclass Tidak Langsung yang Dikenal |
Antarmuka ke penafsir model TensorFlow Lite, tidak termasuk metode eksperimental.
Instance InterpreterApi
mengenkapsulasi model TensorFlow Lite terlatih, dengan
dijalankan untuk inferensi model.
Misalnya, jika model hanya mengambil satu input dan hanya menampilkan satu output:
try (InterpreterApi interpreter =
new InterpreterApi.create(file_of_a_tensorflowlite_model)) {
interpreter.run(input, output);
}
Jika model menggunakan beberapa input atau 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);
}
Jika model mengambil atau menghasilkan tensor string:
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);
}
Perhatikan bahwa ada perbedaan antara bentuk [] dan bentuk[1]. Untuk tensor string skalar output:
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);
Urutan input dan output ditentukan saat mengonversi model TensorFlow ke TensorFlowLite dengan Toco, serta bentuk default input-nya.
Ketika input diberikan sebagai array (multi-dimensi), tensor input yang sesuai akan
secara implisit diubah ukurannya
sesuai dengan bentuk {i>array<i} itu. Jika input disediakan sebagai jenis Buffer
, tidak ada perubahan ukuran implisit yang dilakukan; pemanggil harus memastikan bahwa ukuran byte Buffer
cocok dengan tensor terkait, atau bahwa ukuran
mengubah ukuran tensor melalui resizeInput(int, int[])
. Informasi bentuk dan jenis tensor dapat
diperoleh melalui class Tensor
, tersedia melalui getInputTensor(int)
dan getOutputTensor(int)
.
PERINGATAN: Instance InterpreterApi
tidak aman untuk thread.
PERINGATAN:Instance InterpreterApi
memiliki resource yang harus berupa
dibebaskan secara eksplisit dengan memanggil close()
Library TFLite dibuat berdasarkan NDK API 19. Fitur ini mungkin berfungsi untuk API Android dengan level di bawah 19, tetapi tidak dijamin.
Class Bertingkat
class | InterpreterApi.Options | Class opsi untuk mengontrol perilaku penafsir runtime. |
Metode Publik
abstrak kosong |
allocateTensors()
Secara eksplisit mengupdate alokasi untuk semua tensor, jika diperlukan.
|
abstrak kosong |
close()
Melepaskan resource yang terkait dengan instance
InterpreterApi . |
statis InterpreterApi |
create(opsi File modelFile, InterpreterApi.Options)
Membuat instance
InterpreterApi , menggunakan model dan opsi yang ditentukan. |
statis InterpreterApi |
create(opsi ByteBuffer byteBuffer, InterpreterApi.Options)
Membuat instance
InterpreterApi , menggunakan model dan opsi yang ditentukan. |
abstrak Int | |
abstrak Tensor |
getInputTensor(int inputIndex)
Mendapatkan Tensor yang terkait dengan indeks input yang disediakan.
|
abstrak Int |
getInputTensorCount()
Mendapatkan jumlah tensor input.
|
abstrak Panjang |
getLastNativeInferenceDurationNanoseconds()
Menampilkan waktu inferensi native.
|
abstrak Int | |
abstrak Tensor |
getOutputTensor(int outputIndex)
Mendapatkan Tensor yang terkait dengan indeks output yang diberikan.
|
abstrak Int |
getOutputTensorCount()
Mendapatkan jumlah Tensor output.
|
abstrak kosong |
resizeInput(int idx, int[] dims, boolean strict)
Mengubah ukuran input idx-th model native ke redup yang diberikan.
|
abstrak kosong |
resizeInput(int idx, int[] dims)
Mengubah ukuran input idx-th model native ke redup yang diberikan.
|
abstrak kosong | |
abstrak kosong |
runForMultipleInputsOutputs(input Object[], output Map<Integer, Object>)
Menjalankan inferensi model jika model mengambil beberapa input, atau menampilkan beberapa output.
|