InterpreterApi

общедоступный интерфейс InterpreterApi
Известные косвенные подклассы

Интерфейс к интерпретатору модели 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);
 }
 

Обратите внимание, что существует различие между shape[] и shape[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 , доступный через getInputTensor(int) и getOutputTensor(int) .

ВНИМАНИЕ. Экземпляры InterpreterApi не являются потокобезопасными.

ВНИМАНИЕ: Экземпляр InterpreterApi владеет ресурсами, которые необходимо явно освободить, вызвав функцию close()

Библиотека TFLite создана на основе NDK API 19. Она может работать для уровней Android API ниже 19, но это не гарантируется.

Вложенные классы

сорт ИнтерпретаторApi.Параметры Класс опций для управления поведением интерпретатора во время выполнения.

Публичные методы

абстрактная пустота
выделитьТензоры ()
При необходимости явно обновляет распределения для всех тензоров.
абстрактная пустота