InterpreterApi

antarmuka publik InterpreterApi
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
getInputIndex(String opName)
Mendapatkan indeks input berdasarkan nama op input.
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
getOutputIndex(opName String)
Mendapatkan indeks output berdasarkan nama op output.
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
run(input Objek, output Objek)
Menjalankan inferensi model jika model hanya mengambil satu input, dan hanya memberikan satu output.
abstrak kosong