Dzień Społeczności ML jest 9 listopada! Dołącz do nas na aktualizacje z TensorFlow Jax i więcej Dowiedz się więcej

Interpreter

tłumacz ustny na zajęciach publicznych

Klasa sterownika do kierowania wnioskowaniem modelu za pomocą TensorFlow Lite.

Interpreter hermetyzuje wstępnie przeszkolony model TensorFlow Lite, w którym operacje są wykonywane w celu wnioskowania o modelu.

Na przykład, jeśli model przyjmuje tylko jedno wejście i zwraca tylko jedno wyjście:

try (Interpreter interpreter = new Interpreter(file_of_a_tensorflowlite_model)) {
   interpreter.run(input, output);
 
 }

Jeśli model ma wiele wejść lub wyjść:

Object[] inputs = {input0, input1, ...;
 Map 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 (Interpreter interpreter = new Interpreter(file_of_a_tensorflowlite_model)) {
   interpreter.runForMultipleInputsOutputs(inputs, map_of_indices_to_outputs);
 }
 }

Jeśli model przyjmuje lub produkuje tensory strun:

String[] input = {"foo", "bar";  // Input tensor shape is [2].
 String[] output = new String[3][2];  // Output tensor shape is [3, 2].
 try (Interpreter interpreter = new Interpreter(file_of_a_tensorflowlite_model)) {
   interpreter.runForMultipleInputsOutputs(input, output);
 }
 }

Kolejność danych wejściowych i wyjściowych jest określana podczas konwersji modelu TensorFlow na model TensorFlowLite za pomocą Toco, podobnie jak domyślne kształty danych wejściowych.

Gdy dane wejściowe są dostarczane jako (wielowymiarowe) tablice, odpowiedni tensor wejściowy zostanie domyślnie zmieniony zgodnie z kształtem tej tablicy. Gdy dane wejściowe są dostarczane jako typy Buffer , nie jest wykonywana niejawna zmiana rozmiaru; obiekt wywołujący musi upewnić się, że rozmiar bajtu Buffer jest zgodny z odpowiednim tensorem lub że najpierw resizeInput(int, int[]) rozmiar tensora za pomocą resizeInput(int, int[]) . Informacje o kształcie i typie tensora można uzyskać za pośrednictwem klasy Tensor , dostępnej za pośrednictwem getInputTensor(int) i getOutputTensor(int) .

OSTRZEŻENIE: Wystąpienia Interpreter nie są bezpieczne wątkowo. Interpreter posiada zasoby, które muszą być jawnie zwolnione przez wywołanie close()

Biblioteka TFLite jest zbudowana w oparciu o NDK API 19. Może działać dla poziomów API Androida poniżej 19, ale nie jest gwarantowana.

Uwaga: ta klasa nie jest bezpieczna wątkowo.

Klasy zagnieżdżone

klasa Tłumacz.Opcje Klasa opcji do kontrolowania zachowania interpretera w czasie wykonywania.

Konstruktorzy publiczni

Interpreter (File modelFile)
Inicjuje Interpreter
Interpreter (File modelFile, int numThreads)
Ten konstruktor został przestarzały na poziomie API . Preferuj używanie konstruktora Interpreter(File, Options) . Ta metoda zostanie usunięta w przyszłej wersji.
Interpreter (opcje File modelFile, Interpreter.Options )
Inicjuje Interpreter i określa liczbę wątków używanych do wnioskowania.
Interpreter (ByteBuffer byteBuffer)
Inicjuje Interpreter z ByteBuffer pliku modelu.
Interpreter (ByteBuffer byteBuffer, int numThreads)
Ten konstruktor został przestarzały na poziomie API . Preferuj używanie konstruktora Interpreter(ByteBuffer, Options) . Ta metoda zostanie usunięta w przyszłej wersji.
Interpreter (MappedByteBuffer mappedByteBuffer)
Ten konstruktor został przestarzały na poziomie API . Preferuj używanie konstruktora Interpreter(ByteBuffer, Options) . Ta metoda zostanie usunięta w przyszłej wersji.
Interpreter (opcje ByteBuffer byteBuffer, Interpreter.Options )
Inicjuje Interpreter z ByteBuffer pliku modelu i zestawem niestandardowych Interpreter.Options .

Metody publiczne

unieważnić
alokacjaTensory ()
W razie potrzeby wyraźnie aktualizuje alokacje dla wszystkich tensorów.
unieważnić
zamknij ()
Zwolnij zasoby związane z Interpreter .
int
getInputIndex (String opName)
Pobiera indeks wejścia na podstawie nazwy operacji wejścia.
Napinacz
getInputTensor (int inputIndex)
Pobiera tensor skojarzony z dostarczonym indeksem wejściowym.
int
getInputTensorCount ()
Pobiera liczbę tensorów wejściowych.
Napinacz
getInputTensorFromSignature (String inputName, String methodName)
Pobiera Tensor skojarzony z podaną nazwą wejściową i nazwą metody podpisu.
Długo
getLastNativeInferenceCzas trwaniaNanosekundy ()
Zwraca natywny czas wnioskowania.
int
getOutputIndex (String opName)
Pobiera indeks wyjścia na podstawie nazwy operacji wyjścia.
Napinacz
getOutputTensor (int outputIndex)
Pobiera tensor skojarzony z dostarczonym indeksem wyjściowym.
int
getOutputTensorCount ()
Pobiera liczbę tensorów wyjściowych.
Napinacz
getOutputTensorFromSignature (String outputName, String methodName)
Pobiera Tensor skojarzony z podaną nazwą wyjściową w określonej metodzie podpisu.
Strunowy[]
getSignatureDefNames ()
Pobiera listę nazw wyeksportowanych metod SignatureDef dostępnych w modelu.
Strunowy[]
getSignatureInputs (String methodName)
Pobiera listę danych wejściowych SignatureDefs dla metody methodName

OSTRZEŻENIE: to jest eksperymentalny interfejs API i może ulec zmianie.

Strunowy[]
getSignatureOutputs (String methodName)
Pobiera listę danych wyjściowych SignatureDefs dla metody methodName

OSTRZEŻENIE: to jest eksperymentalny interfejs API i może ulec zmianie.

unieważnić
zmodyfikujGraphWithDelegate ( Delegat delegata)
Ta metoda jest przestarzała na poziomie API . Preferuj używanie addDelegate(Delegate) aby zapewnić delegatów w czasie tworzenia. Ta metoda zostanie usunięta w przyszłej wersji.
unieważnić
resetowanieVariableTensors ()
Zaawansowane: Resetuje wszystkie tensory zmiennych do wartości domyślnej.
unieważnić
resizeInput (int idx, int[] dims, boolean strict)
Zmienia rozmiar idx-tego wejścia modelu natywnego do podanych wymiarów.
unieważnić
resizeInput (int idx, int[] dims)
Zmienia rozmiar idx-tego wejścia modelu natywnego do podanych wymiarów.
unieważnić
run (wejście obiektu, wyjście obiektu)
Uruchamia wnioskowanie o modelu, jeśli model przyjmuje tylko jedno dane wejściowe i udostępnia tylko jedno dane wyjściowe.
unieważnić
runForMultipleInputsOutputs (wejścia typu Object[], dane wyjściowe Map<Integer, Object>)
Uruchamia wnioskowanie o modelu, jeśli model przyjmuje wiele danych wejściowych lub zwraca wiele danych wyjściowych.
unieważnić
runSignature (wejścia Map<String, Object>, wyjścia Map<String, Object>)
unieważnić
runSignature (wejścia Map<String, Object>, dane wyjściowe Map<String, Object>, String methodName)
Uruchamia wnioskowanie o modelu na podstawie SignatureDef dostarczonego przez @code methodName.
unieważnić
setCancelled (anulowane wartości logiczne)
Zaawansowane: Przerywa wnioskowanie w trakcie wywołania run(Object, Object) .
unieważnić
setNumThreads (int numThreads)
Ta metoda jest przestarzała na poziomie API . Preferuj bezpośrednie używanie setNumThreads(int) do kontrolowania wielowątkowości wątków. Ta metoda zostanie usunięta w przyszłej wersji.

Metody odziedziczone

Konstruktorzy publiczni

Interpreter publiczny (File modelFile)

Inicjuje Interpreter

Rzuty
Niedozwolony wyjątek Argumentu jeśli modelFile nie koduje prawidłowego modelu TensorFlow Lite.

publiczny interpreter (File modelFile, int numThreads)

Ten konstruktor został przestarzały na poziomie API .
Preferuj używanie konstruktora Interpreter(File, Options) . Ta metoda zostanie usunięta w przyszłej wersji.

Inicjuje Interpreter i określa liczbę wątków używanych do wnioskowania.

public Interpreter (opcje File modelFile, Interpreter.Options )

Inicjuje Interpreter i określa liczbę wątków używanych do wnioskowania.

Rzuty
Niedozwolony Wyjątek Argumentu jeśli modelFile nie koduje prawidłowego modelu TensorFlow Lite.

Interpreter publiczny (ByteBuffer byteBuffer)

Inicjuje Interpreter z ByteBuffer pliku modelu.

Nie należy modyfikować ByteBuffer po skonstruowaniu Interpreter . ByteBuffer może być albo MappedByteBuffer który MappedByteBuffer pamięci plik modelu, albo bezpośrednim ByteBuffer nativeOrder(), który zawiera zawartość bajtów modelu.

Rzuty
Niedozwolony wyjątek Argumentu jeśli byteBuffer nie jest MappedByteBuffer ani bezpośrednim ERROR(/Bytebuffer) nativeOrder.

Interpreter publiczny (ByteBuffer byteBuffer, int numThreads)

Ten konstruktor został przestarzały na poziomie API .
Preferuj używanie konstruktora Interpreter(ByteBuffer, Options) . Ta metoda zostanie usunięta w przyszłej wersji.

Inicjuje Interpreter z ByteBuffer pliku modelu i określa liczbę wątków używanych do wnioskowania.

Nie należy modyfikować ByteBuffer po skonstruowaniu Interpreter . ByteBuffer może być albo MappedByteBuffer który MappedByteBuffer pamięci plik modelu, albo bezpośrednim ByteBuffer nativeOrder(), który zawiera zawartość bajtów modelu.

Interpreter publiczny (MappedByteBuffer mappedByteBuffer)

Ten konstruktor został przestarzały na poziomie API .
Preferuj używanie konstruktora Interpreter(ByteBuffer, Options) . Ta metoda zostanie usunięta w przyszłej wersji.

Inicjuje Interpreter z MappedByteBuffer do pliku modelu.

MappedByteBuffer powinien pozostać niezmieniony po skonstruowaniu Interpreter .

publiczny interpreter (opcje ByteBuffer byteBuffer, Interpreter.Options )

Inicjuje Interpreter z ByteBuffer pliku modelu i zestawem niestandardowych Interpreter.Options .

Nie należy modyfikować ByteBuffer po skonstruowaniu Interpreter . ByteBuffer może być albo MappedByteBuffer który MappedByteBuffer pamięci plik modelu, albo bezpośrednim ByteBuffer nativeOrder(), który zawiera zawartość bajtów modelu.

Rzuty
Niedozwolony wyjątek Argumentu jeśli byteBuffer nie jest MappedByteBuffer ani bezpośrednim ERROR(/Bytebuffer) nativeOrder.

Metody publiczne

public void allocateTensors ()

W razie potrzeby wyraźnie aktualizuje alokacje dla wszystkich tensorów.

Spowoduje to propagowanie kształtów i alokacji pamięci dla wszystkich zależnych tensorów przy użyciu podanego kształtu (kształtów) tensora wejściowego.

Uwaga: to połączenie jest *czysto opcjonalne*. Alokacja tensorów nastąpi automatycznie podczas wykonywania, jeśli zmieniono dowolny rozmiar tensorów wejściowych. To wywołanie jest najbardziej przydatne przy określaniu kształtów dla dowolnych tensorów wyjściowych przed wykonaniem wykresu, np.

interpreter.resizeInput(0, new int[]{1, 4, 4, 3));
 interpreter.allocateTensors();
 FloatBuffer input = FloatBuffer.allocate(interpreter.getInputTensor(0),numElements());
 // Populate inputs...
 FloatBuffer output = FloatBuffer.allocate(interpreter.getOutputTensor(0).numElements());
 interpreter.run(input, output)
 // Process outputs...
 }

Rzuty
Nielegalny wyjątek stanu gdyby tensory grafu nie mogły zostać pomyślnie przydzielone.

publiczne nieważne zamknij ()

Zwolnij zasoby związane z Interpreter .

public int getInputIndex (String opName)

Pobiera indeks wejścia na podstawie nazwy operacji wejścia.

Rzuty
Niedozwolony wyjątek Argumentu jeśli opName nie pasuje do żadnego wejścia w modelu użytym do zainicjowania Interpreter .

public Tensor getInputTensor (int inputIndex)

Pobiera tensor skojarzony z dostarczonym indeksem wejściowym.

Rzuty
Niedozwolony wyjątek Argumentu jeśli inputIndex jest inputIndex lub nie jest mniejszy niż liczba danych wejściowych modelu.

public int getInputTensorCount ()

Pobiera liczbę tensorów wejściowych.

public Tensor getInputTensorFromSignature (String inputName, String methodName)

Pobiera Tensor skojarzony z podaną nazwą wejściową i nazwą metody podpisu.

Parametry
inputName Wpisz nazwę w podpisie.
nazwa metody Nazwa eksportowanej metody identyfikująca SignatureDef może mieć wartość null, jeśli model ma jeden podpis.
Rzuty
Niedozwolony wyjątek Argumentu jeśli inputName lub methodName ma wartość null lub jest pusta lub podano nieprawidłową nazwę.

OSTRZEŻENIE: to jest eksperymentalny interfejs API i może ulec zmianie.

public Long getLastNativeInferenceCzas trwaniaNanosekundy ()

Zwraca natywny czas wnioskowania.

Rzuty
Niedozwolony Wyjątek Argumentu jeśli model nie został zainicjowany przez Interpreter .

public int getOutputIndex (String opName)

Pobiera indeks wyjścia na podstawie nazwy operacji wyjścia.

Rzuty
Niedozwolony wyjątek Argumentu jeśli opName nie pasuje do żadnego wyniku w modelu użytym do zainicjowania Interpreter .

public Tensor getOutputTensor (int outputIndex)

Pobiera tensor skojarzony z dostarczonym indeksem wyjściowym.

Uwaga: Szczegóły tensora danych wyjściowych (np. kształt) mogą nie zostać w pełni wypełnione przed wykonaniem wnioskowania. Jeśli potrzebujesz zaktualizowanych szczegółów *przed* uruchomieniem wnioskowania (np. po zmianie rozmiaru tensora wejściowego, co może unieważnić kształty tensora wyjściowego), użyj funkcji allocateTensors() aby jawnie wyzwolić alokację i propagację kształtu. Zwróć uwagę, że w przypadku wykresów z kształtami wyjściowymi, które są zależne od *wartości* wejściowych, kształt wyjściowy może nie zostać w pełni określony do momentu uruchomienia wnioskowania.

Rzuty
Niedozwolony Wyjątek Argumentu jeśli outputIndex jest outputIndex lub nie jest mniejszy niż liczba wyjść modelu.

public int getOutputTensorCount ()

Pobiera liczbę tensorów wyjściowych.

public Tensor getOutputTensorFromSignature (String outputName, String methodName)

Pobiera Tensor skojarzony z podaną nazwą wyjściową w określonej metodzie podpisu.

Uwaga: Szczegóły tensora danych wyjściowych (np. kształt) mogą nie zostać w pełni wypełnione przed wykonaniem wnioskowania. Jeśli potrzebujesz zaktualizowanych szczegółów *przed* uruchomieniem wnioskowania (np. po zmianie rozmiaru tensora wejściowego, co może unieważnić kształty tensora wyjściowego), użyj funkcji allocateTensors() aby jawnie wyzwolić alokację i propagację kształtu. Zwróć uwagę, że w przypadku wykresów z kształtami wyjściowymi, które są zależne od *wartości* wejściowych, kształt wyjściowy może nie zostać w pełni określony przed uruchomieniem wnioskowania.

Parametry
OutputName Wyjściowa nazwa w podpisie.
nazwa metody Nazwa eksportowanej metody identyfikująca SignatureDef może mieć wartość null, jeśli model ma jeden podpis.
Rzuty
Niedozwolony wyjątek Argumentu jeśli outputName lub methodName ma wartość null lub jest pusta lub podano nieprawidłową nazwę.

OSTRZEŻENIE: to jest eksperymentalny interfejs API i może ulec zmianie.

public String[] getSignatureDefNames ()

Pobiera listę nazw wyeksportowanych metod SignatureDef dostępnych w modelu.

OSTRZEŻENIE: to jest eksperymentalny interfejs API i może ulec zmianie.

public String[] getSignatureInputs (String methodName)

Pobiera listę danych wejściowych SignatureDefs dla metody methodName

OSTRZEŻENIE: to jest eksperymentalny interfejs API i może ulec zmianie.

public String[] getSignatureOutputs (String methodName)

Pobiera listę danych wyjściowych SignatureDefs dla metody methodName

OSTRZEŻENIE: to jest eksperymentalny interfejs API i może ulec zmianie.

public void modifyGraphWithDelegate ( Delegat delegat)

Ta metoda jest przestarzała na poziomie API .
Preferuj używanie addDelegate(Delegate) aby zapewnić delegatów w czasie tworzenia. Ta metoda zostanie usunięta w przyszłej wersji.

Zaawansowane: modyfikuje wykres za pomocą dostarczonego Delegate .

Rzuty
Niedozwolony Wyjątek Argumentu jeśli wystąpi błąd podczas modyfikowania wykresu za pomocą delegate .

public void resetVariableTensors ()

Zaawansowane: Resetuje wszystkie tensory zmiennych do wartości domyślnej.

Jeśli tensor zmiennej nie ma skojarzonego bufora, zostanie zresetowany do zera.

OSTRZEŻENIE: to jest eksperymentalny interfejs API i może ulec zmianie.

public void resizeInput (int idx, int[] dims, boolean strict)

Zmienia rozmiar idx-tego wejścia modelu natywnego do podanych wymiarów.

Gdy „ścisłe” ma wartość True, można zmieniać rozmiar tylko nieznanych wymiarów. Nieznane wymiary są oznaczone jako „-1” w tablicy zwracanej przez „Tensor.shapeSignature()”.

Rzuty
Niedozwolony wyjątek Argumentu czy idx jest ujemne lub nie mniejsze niż liczba wejść modelu; lub jeśli wystąpi błąd podczas zmiany rozmiaru wejścia idx-th. Ponadto błąd występuje podczas próby zmiany rozmiaru tensora o stałych wymiarach, gdy `struct` ma wartość True.

public void resizeInput (int idx, int[] dims)

Zmienia rozmiar idx-tego wejścia modelu natywnego do podanych wymiarów.

Rzuty
Niedozwolony wyjątek Argumentu czy idx jest ujemne lub nie mniejsze niż liczba wejść modelu; lub jeśli wystąpi błąd podczas zmiany rozmiaru wejścia idx-th.

public void run (wejście obiektu, wyjście obiektu)

Uruchamia wnioskowanie o modelu, jeśli model przyjmuje tylko jedno dane wejściowe i udostępnia tylko jedno dane wyjściowe.

Ostrzeżenie: API jest bardziej wydajne, jeśli Buffer (najlepiej bezpośredni, ale nie jest wymagany) jest używany jako typ danych wejściowych/wyjściowych. Rozważ użycie Buffer do przesyłania i pobierania danych pierwotnych w celu uzyskania lepszej wydajności. Obsługiwane są następujące typy konkretnych Buffer :

  • ByteBuffer — kompatybilny z dowolnym podstawowym typem Tensora.
  • FloatBuffer - kompatybilny z pływak Tensor.
  • IntBuffer - kompatybilny z tensorami int32.
  • LongBuffer - kompatybilny z tensorami int64.
Zauważ, że wartość logiczna typy są obsługiwane tylko jako tablic, nie Buffer s, lub jako wejścia skalarnych.

Parametry
Wejście tablica lub tablica wielowymiarowa lub Buffer typów pierwotnych, w tym int, float, long i byte. Buffer jest preferowanym sposobem przekazywania dużych danych wejściowych dla typów pierwotnych, podczas gdy typy ciągów wymagają użycia (wielowymiarowej) ścieżki wejściowej tablicy. Gdy używany jest Buffer , jego zawartość powinna pozostać niezmieniona do momentu zakończenia wnioskowania modelu, a osoba wywołująca musi upewnić się, że Buffer znajduje się w odpowiedniej pozycji odczytu. Wartość null jest dozwolona tylko wtedy, gdy obiekt wywołujący używa Delegate który umożliwia współdziałanie uchwytu bufora, a taki bufor został powiązany z danymi wejściowymi Tensor .
wynik wielowymiarowa tablica danych wyjściowych lub Buffer typów pierwotnych, w tym int, float, long i byte. Gdy używany jest Buffer , osoba wywołująca musi upewnić się, że została ustawiona odpowiednia pozycja zapisu. Wartość null jest dozwolona tylko wtedy, gdy obiekt wywołujący używa Delegate który umożliwia współdziałanie uchwytu buforu, a taki bufor został powiązany z Tensor wyjściowym. Zobacz setAllowBufferHandleOutput(boolean) .
Rzuty
Niedozwolony wyjątek Argumentu jeśli input lub output mają wartość NULL lub są puste lub jeśli wystąpi błąd podczas uruchamiania wnioskowania.
Niedozwolony Wyjątek Argumentu (EKSPERYMENTALNE, może ulec zmianie), jeśli wnioskowanie zostanie przerwane przez setCancelled(true) .

public void runForMultipleInputsOutputs (wejścia typu Object[], dane wyjściowe Map<Integer, Object>)

Uruchamia wnioskowanie o modelu, jeśli model przyjmuje wiele danych wejściowych lub zwraca wiele danych wyjściowych.

Ostrzeżenie: API jest bardziej wydajne, jeśli Buffer (najlepiej bezpośrednie, ale nie wymagane) są używane jako typy danych wejściowych/wyjściowych. Rozważ użycie Buffer do przesyłania i pobierania danych pierwotnych w celu uzyskania lepszej wydajności. Obsługiwane są następujące typy konkretnych Buffer :

  • ByteBuffer — kompatybilny z dowolnym podstawowym typem Tensora.
  • FloatBuffer - kompatybilny z pływak Tensor.
  • IntBuffer - kompatybilny z tensorami int32.
  • LongBuffer - kompatybilny z tensorami int64.
Zauważ, że wartość logiczna typy są obsługiwane tylko jako tablic, nie Buffer s, lub jako wejścia skalarnych.

Uwaga: wartości null dla poszczególnych elementów danych inputs i outputs są dozwolone tylko wtedy, gdy obiekt wywołujący używa Delegate który umożliwia współdziałanie uchwytu bufora, a taki bufor został powiązany z odpowiednim Tensor wejściowym lub wyjściowym.

Parametry
wejścia tablica danych wejściowych. Dane wejściowe powinny być w tej samej kolejności co dane wejściowe modelu. Każde dane wejściowe może być tablicą lub tablicą wielowymiarową lub Buffer typów pierwotnych, w tym int, float, long i byte. Buffer jest preferowanym sposobem przekazywania dużych danych wejściowych, podczas gdy typy ciągów wymagają użycia (wielowymiarowej) ścieżki wejściowej tablicy. Gdy używany jest Buffer , jego zawartość powinna pozostać niezmieniona do momentu zakończenia wnioskowania modelu, a obiekt wywołujący musi upewnić się, że Buffer znajduje się w odpowiedniej pozycji odczytu.
wyjścia mapa mapująca indeksy wyjściowe na wielowymiarowe tablice danych wyjściowych lub Buffer typów pierwotnych, w tym int, float, long i byte. Wystarczy zachować wpisy dotyczące wyjść, które mają być używane. Gdy używany jest Buffer , osoba wywołująca musi upewnić się, że została ustawiona odpowiednia pozycja zapisu.
Rzuty
Niedozwolony wyjątek Argumentu jeśli inputs lub outputs mają wartość NULL lub są puste, lub jeśli podczas uruchamiania wnioskowania wystąpi błąd.

public void runSignature (wejścia Map<String, Object>, wyjścia Map<String, Object>)

public void runSignature (dane wejściowe Map<String, Object>, dane wyjściowe Map<String, Object>, String methodName)

Uruchamia wnioskowanie o modelu na podstawie SignatureDef dostarczonego przez @code methodName.

Zobacz run(Object, Object) aby uzyskać więcej informacji na temat dozwolonych typów danych wejściowych i wyjściowych.

Parametry
wejścia Mapa wejść z nazwy wejściowej w signatureDef do obiektu wejściowego.
wyjścia mapowanie z nazwy wyjściowej w SignatureDef do danych wyjściowych.
nazwa metody Nazwa eksportowanej metody identyfikująca SignatureDef.
Rzuty
Niedozwolony Wyjątek Argumentu jeśli inputs lub outputs lub methodName mają wartość null lub są puste lub jeśli wystąpi błąd podczas uruchamiania wnioskowania.

OSTRZEŻENIE: to jest eksperymentalny interfejs API i może ulec zmianie.

public void setCancelled (anulowane wartości logiczne)

Zaawansowane: Przerywa wnioskowanie w trakcie wywołania run(Object, Object) .

Gdy ta funkcja zostanie wywołana, flaga anulowania zostanie ustawiona na true. Interpreter sprawdzi flagę między wywołaniami Op, a jeśli to true , interpreter zatrzyma wykonywanie. Interpreter pozostanie w stanie anulowanym, dopóki nie zostanie jawnie „ setCancelled(false) ” przez setCancelled(false) .

OSTRZEŻENIE: to jest eksperymentalny interfejs API i może ulec zmianie.

Parametry
anulowany true anulować wnioskowanie w najlepszy sposób; false aby wznowić.
Rzuty
Nielegalny wyjątek stanu jeśli interpreter nie jest zainicjowany z opcją anulowania, która jest domyślnie wyłączona.

public void setNumThreads (int numThreads)

Ta metoda jest przestarzała na poziomie API .
Preferuj bezpośrednie używanie setNumThreads(int) do kontrolowania wielowątkowości wątków. Ta metoda zostanie usunięta w przyszłej wersji.

Ustawia liczbę wątków, które mają być używane dla operacji obsługujących wielowątkowość.