Znane podklasy pośrednie |
Interfejs do interpretera modelu TensorFlow Lite, z wyłączeniem metod eksperymentalnych.
Instancja InterpreterApi
zawiera wytrenowany model TensorFlow Lite, w którym
wykonywane są operacje wnioskowania na podstawie modelu.
Jeśli na przykład model przyjmuje tylko 1 dane wejściowe i zwraca tylko jedno dane wyjściowe:
try (InterpreterApi interpreter =
new InterpreterApi.create(file_of_a_tensorflowlite_model)) {
interpreter.run(input, output);
}
Jeśli model przyjmuje wiele danych wejściowych lub wyjściowych:
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);
}
Jeśli model przyjmuje lub generuje tensory ciągów:
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);
}
Istnieje rozróżnienie między kształtem [] a kształtem[1]. Skalarny tensor ciągu znaków dane wyjściowe:
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);
Kolejność danych wejściowych i wyjściowych jest określana podczas konwertowania modelu TensorFlow na TensorFlowLite z modelem Toco, a także domyślne kształty danych wejściowych.
Jeśli dane wejściowe są podane jako (wielowymiarowe) tablice, odpowiednie tensory wejściowe będą
zostanie niejawnie przeskalowana odpowiednio do kształtu tej tablicy. Jeśli dane wejściowe są podane w typach Buffer
, nie wprowadza się niejawna zmiana rozmiaru. element wywołujący musi upewnić się, że rozmiar w bajtach Buffer
jest zgodny z rozmiarem odpowiedniego tensora lub że rozmiar
zmień rozmiar tensora za pomocą funkcji resizeInput(int, int[])
. Informacje o kształcie i typie Tensor można
uzyskane w ramach klasy Tensor
, dostępne poprzez getInputTensor(int)
i getOutputTensor(int)
.
OSTRZEŻENIE: instancje InterpreterApi
nie są bezpieczne w przypadku wątków.
OSTRZEŻENIE: instancja InterpreterApi
zawiera zasoby, które muszą być
jawnie zwolnione przez wywołanie close()
Biblioteka TFLite jest oparta na interfejsie NDK API 19. Może działać w przypadku interfejsów API Androida poniżej 19, ale nie jest to gwarantowane.
Zagnieżdżone klasy
klasa | InterpreterApi.Options | Klasa opcji do kontrolowania działania interpretera czasu działania. |
Metody publiczne
abstrakcyjne nieważne |
allocateTensors()
W razie potrzeby jawnie aktualizuje przydziały wszystkich tensorów.
|
abstrakcyjne nieważne |
close()
Zwolnij zasoby powiązane z instancją
InterpreterApi . |
statyczny InterpreterApi |
create(Plik modelFile, opcje InterpreterApi.Options)
Konstruuje instancję
InterpreterApi przy użyciu podanego modelu i opcji. |
statyczny InterpreterApi |
create(opcje ByteBuffer byteBuffer, InterpreterApi.Options)
Konstruuje instancję
InterpreterApi przy użyciu podanego modelu i opcji. |
abstrakcyjne int, |
getInputIndex(nazwa opcji ciąg znaków)
Pobiera indeks danych wejściowych o nazwie operacji dla danych wejściowych.
|
abstrakcyjne Tensor |
getInputTensor(int inputIndex)
Pobiera Tensor powiązany z podanym indeksem danych wejściowych.
|
abstrakcyjne int, |
getInputTensorCount()
Pobiera liczbę tensorów wejściowych.
|
abstrakcyjne Długi |
getLastNativeInferenceDurationNanoseconds()
Zwraca czas wnioskowania natywnego.
|
abstrakcyjne int, |
getOutputIndex(opName ciągu)
Pobiera indeks danych wyjściowych o nazwie operacji w danych wyjściowych.
|
abstrakcyjne Tensor |
getOutputTensor(int outputIndex)
Pobiera Tensor powiązany z podanym indeksem wyjściowym.
|
abstrakcyjne int, |
getOutputTensorCount()
Pobiera liczbę wyjściowych tensorów.
|
abstrakcyjne nieważne |
resizeInput(int idx, int[] dims, boolean strict)
Zmienia rozmiar danych wejściowych modelu natywnego (IDX).
|
abstrakcyjne nieważne |
resizeInput(int idx, int[] przyciemnione)
Zmienia rozmiar danych wejściowych modelu natywnego (IDX).
|