Interpreter

public final class Dolmetscher

Treiberklasse zum Steuern von Modellinferenzen mit TensorFlow Lite.

Hinweis: Falls Sie keinen Zugriff auf die experimentellen Funktionen API-Funktionen unten, bitte verwenden InterpreterApi und InterpreterFactory verwenden, anstatt Interpreter direkt zu verwenden.

Ein Interpreter kapselt ein vortrainiertes TensorFlow Lite-Modell, in dem Vorgänge für Modellinferenzen ausgeführt werden.

Wenn ein Modell beispielsweise nur eine Eingabe annimmt und nur eine Ausgabe zurückgibt:

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

Wenn ein Modell mehrere Eingaben oder Ausgaben annimmt:

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 (Interpreter interpreter = new Interpreter(file_of_a_tensorflowlite_model)) {
   interpreter.runForMultipleInputsOutputs(inputs, map_of_indices_to_outputs);
 }
 

Wenn ein Modell Stringtensoren annimmt oder erzeugt:

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);
 }
 

Beachten Sie, dass es einen Unterschied zwischen Form [] und Form[1] gibt. Für skalaren String-Tensor Ausgaben:

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);
 

Die Reihenfolge der Ein- und Ausgaben wird beim Konvertieren eines TensorFlow-Modells in TensorFlowLite festgelegt. mit Toco-Modell erstellen, sowie die Standardformen der Eingaben.

Wenn Eingaben als (multidimensionale) Arrays bereitgestellt werden, ergeben sich für die entsprechenden Eingabetensoren implizit an die Form dieses Arrays angepasst werden. Wenn Eingaben als Buffer angegeben werden wird keine implizite Größenänderung durchgeführt. Der Aufrufer muss sicherstellen, dass die Bytegröße Buffer entweder mit dem des entsprechenden Tensors übereinstimmt oder dass die Größe des Tensors zuerst über resizeInput(int, int[]) geändert wird. Informationen zu Form und Typ von Tensor können über die Klasse Tensor abgerufen werden, die über getInputTensor(int) und getOutputTensor(int) verfügbar ist.

WARNUNG:Interpreter-Instanzen sind nicht threadsicher. Ein Interpreter besitzt Ressourcen, die durch Aufrufen von close() explizit freigegeben werden müssen.

Die TFLite-Bibliothek basiert auf NDK API 19. Es kann für Android-API-Levels unter 19 funktionieren, aber nicht garantiert.

Verschachtelte Klassen

Klasse Interpreter.Options Eine Optionsklasse zur Steuerung des Laufzeitinterpreterverhaltens.

Public Constructors

Interpreter(File modelFile)
Initialisiert ein Interpreter.
Interpreter(File modelFile, Interpreter.Options-Optionen)
Initialisiert ein Interpreter und gibt Optionen zum Anpassen des Dolmetscherverhaltens an.
Interpreter(ByteBuffer byteBuffer)
Initialisiert ein Interpreter mit einem ByteBuffer einer Modelldatei.
Interpreter(ByteBuffer byteBuffer, Interpreter.Options-Optionen)
Initialisiert ein Interpreter mit einer ByteBuffer einer Modelldatei und einer Reihe von benutzerdefiniert Interpreter.Options.

Public Methods

voidm
allocateTensors()
Aktualisiert bei Bedarf explizit Zuweisungen für alle Tensoren.
voidm
close()
Geben Sie Ressourcen frei, die mit der Instanz InterpreterApi verknüpft sind.
int
getInputIndex(String opName)
Ruft den Index einer Eingabe anhand des Vorgangsnamens der Eingabe ab.
Tensor
getInputTensor(int inputIndex)
Ruft den Tensor ab, der dem bereitgestellten Eingabeindex zugeordnet ist.
int
getInputTensorCount()
Ruft die Anzahl der Eingabetensoren ab.
Tensor
getInputTensorFromSignature(String inputName, String signatureKey)
Ruft den Tensor ab, der dem angegebenen Eingabenamen und dem Namen der Signaturmethode zugeordnet ist.
Lang
getLastNativeInferenceDurationNanoseconds()
Gibt das Timing der nativen Inferenz zurück.
int
getOutputIndex(String opName)
Ruft den Index einer Ausgabe anhand des Vorgangsnamens der Ausgabe ab.
Tensor
getOutputTensor(int-outputIndex)
Ruft den Tensor ab, der dem bereitgestellten Ausgabeindex zugeordnet ist.
int
getOutputTensorCount()
Ruft die Anzahl der Tensoren für die Ausgabe ab.
Tensor
getOutputTensorFromSignature(String outputName, String signatureKey)
Ruft den Tensor ab, der dem bereitgestellten Ausgabenamen in einer bestimmten Signaturmethode zugeordnet ist.
String[]
getSignatureInputs(String signatureKey)
Ruft die Liste der SignatureDefs-Eingaben für die Methode signatureKey ab.
String[]
getSignatureKeys()
Ruft die Liste der exportierten SignatureDef-Methodennamen ab, die im Modell verfügbar sind.
String[]
getSignatureOutputs(String signatureKey)
Ruft die Liste der SignatureDefs-Ausgaben für die Methode signatureKey ab.
voidm
resetVariableTensors()
Erweitert: Setzt alle Variablentensoren auf den Standardwert zurück.
voidm
resizeInput(int idx, int[] dims, boolean strict)
Ändert die Größe der idx-ten Eingabe des nativen Modells an die angegebenen Dimmungen.
voidm
resizeInput(int idx, int[] dimme)
Ändert die Größe der idx-ten Eingabe des nativen Modells an die angegebenen Dimmungen.
voidm
run(Objekteingabe, Objektausgabe)
Führt eine Modellinferenz aus, wenn das Modell nur eine Eingabe annimmt und nur eine Ausgabe bereitstellt.
voidm
runForMultipleInputsOutputs(Object[]-Eingaben, Map<IntegerObject>-Ausgaben)
Führt eine Modellinferenz aus, wenn das Modell mehrere Eingaben annimmt oder mehrere Ausgaben zurückgibt.
voidm
runSignature(Map<StringObject>-Eingaben, Map<StringObject>-Ausgaben)
Wie bei runSignature(Map, Map, String), es muss jedoch kein signatureKey übergeben werden, vorausgesetzt, das Modell hat eine SignatureDef.
voidm
runSignature(Map<StringObject>-Eingaben, Map<StringObject>-Ausgaben, String signatureKey)
Führt Modellinferenz anhand von SignatureDef aus, die über signatureKey bereitgestellt werden.
voidm
setCancelled(Boolescher Wert abgebrochen)
Erweitert: Unterbricht die Inferenz während eines Anrufs an run(Object, Object).

Übernommene Methoden

Public Constructors

<ph type="x-smartling-placeholder"></ph> öffentlich Dolmetscher (Datei modelFile)

Initialisiert ein Interpreter.

Parameter
modelFile Eine Datei eines vortrainierten TF Lite-Modells.
Löst aus
IllegalArgumentException Wenn modelFile keinen gültigen TensorFlow Lite-Code codiert modellieren.

<ph type="x-smartling-placeholder"></ph> öffentlich Dolmetscher (File modelFile, Interpreter.Options-Optionen)

Initialisiert ein Interpreter und gibt Optionen zum Anpassen des Dolmetscherverhaltens an.

Parameter
modelFile Datei eines vortrainierten TF Lite-Modells
Optionen Optionen zur Anpassung des Dolmetscherverhaltens
Löst aus
IllegalArgumentException Wenn modelFile keinen gültigen TensorFlow Lite-Code codiert modellieren.

<ph type="x-smartling-placeholder"></ph> öffentlich Dolmetscher (ByteBuffer byteBuffer)

Initialisiert ein Interpreter mit einem ByteBuffer einer Modelldatei.

Der ByteBuffer sollte nach der Konstruktion einer Interpreter nicht mehr geändert werden. Die ByteBuffer kann entweder eine MappedByteBuffer sein, die eine Modelldatei im Arbeitsspeicher abbildet, oder direktes ByteBuffer von "nativeOrder()", das den Byteinhalt eines Modells enthält.

Parameter
byteBuffer
Löst aus
IllegalArgumentException byteBuffer ist weder ein MappedByteBuffer noch ein direkt ByteBuffer von nativeOrder.

<ph type="x-smartling-placeholder"></ph> öffentlich Dolmetscher (ByteBuffer byteBuffer, Interpreter.Options Optionen)

Initialisiert ein Interpreter mit einer ByteBuffer einer Modelldatei und einer Reihe von benutzerdefiniert Interpreter.Options.

Die ByteBuffer sollte nach dem Erstellen einer Interpreter nicht mehr geändert werden. Die ByteBuffer kann entweder ein MappedByteBuffer sein, der eine Speicherzuordnung durchführt. eine Modelldatei oder einen direkten ByteBuffer von „nativeOrder()“ mit dem Inhalt der Byte eines Modells.

Parameter
byteBuffer
Optionen
Löst aus
IllegalArgumentException byteBuffer ist weder ein MappedByteBuffer noch ein direkt ByteBuffer von nativeOrder.

Public Methods

<ph type="x-smartling-placeholder"></ph> öffentlich voidm allocateTensors ()

Aktualisiert bei Bedarf explizit Zuweisungen für alle Tensoren.

Dadurch werden Formen und Arbeitsspeicherzuweisungen für abhängige Tensoren mithilfe der Eingabe Tensorform(en) wie angegeben.

Hinweis: Dieser Aufruf ist *reine optional*. Die Tensor-Zuweisung erfolgt automatisch während wenn die Größe von Eingabetensoren geändert wurde. Dieser Aufruf ist sehr nützlich, um die Formen für Ausgabetensoren, bevor Sie den Graphen ausführen. Beispiel:

 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...

Hinweis: Einige Grafiken haben dynamisch geformte Ausgaben. In diesem Fall ist die Ausgabeform möglicherweise nicht bis die Inferenz ausgeführt wird.

<ph type="x-smartling-placeholder"></ph> öffentlich voidm schließen ()

Geben Sie Ressourcen frei, die mit der Instanz InterpreterApi verknüpft sind.

<ph type="x-smartling-placeholder"></ph> öffentlich Ganzzahl getInputIndex (String opName)

Ruft den Index einer Eingabe anhand des Vorgangsnamens der Eingabe ab.

Parameter
opName

<ph type="x-smartling-placeholder"></ph> öffentlich Tensor getInputTensor (int inputIndex)

Ruft den Tensor ab, der dem bereitgestellten Eingabeindex zugeordnet ist.

Parameter
inputIndex

<ph type="x-smartling-placeholder"></ph> öffentlich Ganzzahl getInputTensorCount ()

Ruft die Anzahl der Eingabetensoren ab.

<ph type="x-smartling-placeholder"></ph> öffentlich Tensor getInputTensorFromSignature (String inputName, String signatureKey)

Ruft den Tensor ab, der dem angegebenen Eingabenamen und dem Namen der Signaturmethode zugeordnet ist.

WARNUNG: Dies ist eine experimentelle API, die sich ändern kann.

Parameter
inputName Geben Sie den Namen in die Signatur ein.
signatureKey Signaturschlüssel zur Identifizierung von SignatureDef; kann null sein, wenn das Modell eine Signatur.
Löst aus
IllegalArgumentException Wenn inputName oder signatureKey null oder leer ist, oder ungültiger Name angegeben ist.

<ph type="x-smartling-placeholder"></ph> öffentlich Lang getLastNativeInferenceDurationNanoseconds ()

Gibt das Timing der nativen Inferenz zurück.

<ph type="x-smartling-placeholder"></ph> öffentlich Ganzzahl getOutputIndex (String opName)

Ruft den Index einer Ausgabe anhand des Vorgangsnamens der Ausgabe ab.

Parameter
opName

<ph type="x-smartling-placeholder"></ph> öffentlich Tensor getOutputTensor (int outputIndex)

Ruft den Tensor ab, der dem bereitgestellten Ausgabeindex zugeordnet ist.

Hinweis: Details zu Ausgabetensoren (z.B. Form) werden möglicherweise erst nach der Inferenz vollständig ausgefüllt ausgeführt wird. Wenn Sie *vor* dem Ausführen einer Inferenz (z.B. nach der Größenanpassung eines Eingabetensor, der Ausgabetensorformen entwerten kann, verwenden Sie allocateTensors(), um die Zuweisung und Form-Weitergabe explizit auslösen. Bei Grafiken mit Ausgabeformen die von *Eingabewerten* abhängig sind, ist die Ausgabeform möglicherweise erst ausgeführte Inferenz.

Parameter
outputIndex

<ph type="x-smartling-placeholder"></ph> öffentlich Ganzzahl getOutputTensorCount ()

Ruft die Anzahl der Tensoren für die Ausgabe ab.

<ph type="x-smartling-placeholder"></ph> öffentlich Tensor getOutputTensorFromSignature (String outputName, String signatureKey)

Ruft den Tensor ab, der dem bereitgestellten Ausgabenamen in einer bestimmten Signaturmethode zugeordnet ist.

Hinweis: Details zu Ausgabetensoren (z.B. Form) werden möglicherweise erst nach der Inferenz vollständig ausgefüllt ausgeführt wird. Wenn Sie *vor* dem Ausführen einer Inferenz (z.B. nach der Größenanpassung eines Eingabetensor, der Ausgabetensorformen entwerten kann, verwenden Sie allocateTensors(), um die Zuweisung und Form-Weitergabe explizit auslösen. Bei Grafiken mit Ausgabeformen die von *Eingabewerten* abhängig sind, ist die Ausgabeform möglicherweise erst ausgeführte Inferenz.

WARNUNG: Dies ist eine experimentelle API, die sich ändern kann.

Parameter
outputName Ausgabename in der Signatur.
signatureKey Signaturschlüssel zur Identifizierung von SignatureDef; kann null sein, wenn das Modell eine Signatur.
Löst aus
IllegalArgumentException wenn outputName oder signatureKey null oder Leer oder ungültiger Name angegeben.

<ph type="x-smartling-placeholder"></ph> öffentlich String[] getSignatureInputs (String signatureKey)

Ruft die Liste der SignatureDefs-Eingaben für die Methode signatureKey ab.

WARNUNG: Dies ist eine experimentelle API, die sich ändern kann.

Parameter
signatureKey

<ph type="x-smartling-placeholder"></ph> öffentlich String[] getSignatureKeys ()

Ruft die Liste der exportierten SignatureDef-Methodennamen ab, die im Modell verfügbar sind.

WARNUNG: Dies ist eine experimentelle API, die sich ändern kann.

<ph type="x-smartling-placeholder"></ph> öffentlich String[] getSignatureOutputs (String signatureKey)

Ruft die Liste der SignatureDefs-Ausgaben für die Methode signatureKey ab.

WARNUNG: Dies ist eine experimentelle API, die sich ändern kann.

Parameter
signatureKey

<ph type="x-smartling-placeholder"></ph> öffentlich voidm resetVariableTensors ()

Erweitert: Setzt alle Variablentensoren auf den Standardwert zurück.

Wenn einem Variablentensor keinen Zwischenspeicher zugeordnet ist, wird er auf null zurückgesetzt.

WARNUNG: Dies ist eine experimentelle API, die sich ändern kann.

<ph type="x-smartling-placeholder"></ph> öffentlich voidm resizeInput (int idx, int[] dimmen, boolesch streng)

Ändert die Größe der idx-ten Eingabe des nativen Modells an die angegebenen Dimmungen.

Wenn „strikt“ auf „True“ gesetzt ist, kann nur die Größe unbekannter Dimensionen geändert werden. Unbekannte Abmessungen sind angegeben als "-1" im von "Tensor.shapeSignature()" zurückgegebenen Array.

Parameter
IdX
dunkler
Strikt

<ph type="x-smartling-placeholder"></ph> öffentlich voidm resizeInput (Int idx, int[] dimme)

Ändert die Größe der idx-ten Eingabe des nativen Modells an die angegebenen Dimmungen.

Parameter
IdX
dunkler

<ph type="x-smartling-placeholder"></ph> öffentlich voidm ausführen (Objekt-Eingabe, Objekt-Ausgabe)

Führt eine Modellinferenz aus, wenn das Modell nur eine Eingabe annimmt und nur eine Ausgabe bereitstellt.

Warnung: Die API ist effizienter, wenn ein Buffer (bevorzugt, direkt, aber nicht erforderlich) verwendet wird. als Eingabe-/Ausgabedatentyp verwendet. Bitte verwenden Sie Buffer zum Einspeisen und Abrufen um eine bessere Leistung zu erzielen. Die folgenden konkreten Buffer-Typen sind unterstützt:

  • ByteBuffer – kompatibel mit allen zugrunde liegenden primitiven Tensor-Typen.
  • FloatBuffer – kompatibel mit Float-Tensoren.
  • IntBuffer – kompatibel mit int32-Tensoren.
  • LongBuffer – kompatibel mit int64-Tensoren.
Boolesche Typen werden nur als Arrays, nicht als Buffers oder als skalare Eingaben unterstützt.

Parameter
Eingabe Array oder mehrdimensionales Array oder Buffer primitiver Typen einschließlich int, float, long und byte. Buffer ist die bevorzugte Methode, um große Eingabedaten für primitive Typen, während für Zeichenfolgentypen die (multidimensionale) Array-Eingabepfad. Wenn eine Buffer verwendet wird, sollte ihr Inhalt bis zu diesem Zeitpunkt unverändert bleiben. Modellinferenz erfolgt und der Aufrufer muss sicherstellen, dass sich die Buffer am Leseposition ein. Ein null-Wert ist nur zulässig, wenn der Aufrufer eine Delegate, die die Interoperabilität der Zwischenspeicherverarbeitung zulässt, und ein solcher Zwischenspeicher wurde an den Geben Sie Tensor ein.
output ein multidimensionales Array von Ausgabedaten oder eine Buffer von primitiven Typen einschließlich int, float, long und byte. Bei Verwendung von Buffer muss der Aufrufer sicherstellen, dass die entsprechende Schreibposition eingestellt ist. Ein Nullwert ist zulässig und nützlich für In bestimmten Fällen, z.B. wenn der Aufrufer ein Delegate verwendet, das ein Zwischenspeicher-Handle zulässt interop und ein solcher Zwischenspeicher wurde an die Ausgabe-Tensor gebunden (siehe auch Interpreter.Options#setAllowBufferHandleOutput(boolean)). Oder wenn die Grafik über dynamisch geformte Ausgaben verfügt und der Aufrufer die Ausgabeform Tensor abfragen muss, nachdem die Inferenz aufgerufen wurde, um die Daten direkt aus der Ausgabe abzurufen Tensor (über Tensor.asReadOnlyBuffer()).

<ph type="x-smartling-placeholder"></ph> öffentlich voidm runForMultipleInputsOutputs (Object[]-Eingaben, Map<IntegerObject>-Ausgaben)

Führt eine Modellinferenz aus, wenn das Modell mehrere Eingaben annimmt oder mehrere Ausgaben zurückgibt.

Warnung: Die API ist effizienter, wenn Buffers (bevorzugt direkt, aber nicht erforderlich) als Eingabe-/Ausgabedatentypen verwendet. Bitte verwenden Sie Buffer zum Einspeisen und Abrufen um eine bessere Leistung zu erzielen. Die folgenden konkreten Buffer-Typen sind unterstützt:

  • ByteBuffer – kompatibel mit allen zugrunde liegenden primitiven Tensor-Typen.
  • FloatBuffer – kompatibel mit Float-Tensoren.
  • IntBuffer – kompatibel mit int32-Tensoren.
  • LongBuffer – kompatibel mit int64-Tensoren.
Boolesche Typen werden nur als Arrays, nicht als Buffers oder als skalare Eingaben unterstützt.

Hinweis: null-Werte für einzelne Elemente von inputs und outputs sind nur zulässig, wenn der Aufrufer eine Delegate verwendet, die Interoperabilität zur Zwischenspeicherbehandlung zulässt, und Ein solcher Zwischenspeicher wurde an die entsprechende(n) Eingabe- oder Ausgabe-Tensor(s) gebunden.

Parameter
Eingaben ein Array von Eingabedaten. Die Eingaben müssen die gleiche Reihenfolge haben wie die Eingaben des modellieren. Jede Eingabe kann ein Array oder ein mehrdimensionales Array oder ein Buffer von wie int, float, long und byte. Buffer ist die bevorzugte Route große Eingabedaten übergeben, während bei Stringtypen die Verwendung des (multidimensionalen) Arrays erforderlich ist Eingabepfad. Wenn Buffer verwendet wird, sollte sein Inhalt bis zum Modell unverändert bleiben der Inferenz erfolgt und der Aufrufer muss sicherstellen, dass sich die Buffer am richtigen Leseposition ein.
Ausgaben eine Zuordnung, die Ausgabeindexe mehrdimensionalen Arrays von Ausgabedaten oder Buffers primitiver Typen wie Int, Float, Long und Byte zuordnet. Es muss nur die Einträge für die zu verwendenden Ausgaben. Bei Verwendung von Buffer muss der Aufrufer sicherstellen, dass die entsprechende Schreibposition eingestellt ist. Die Karte kann leer sein, wenn entweder Puffer-Handles werden für Ausgabetensor-Daten oder Fälle verwendet, in denen die Ausgaben dynamisch sind Shaped und der Aufrufer muss die Tensor-Ausgabeform abfragen, nachdem die Inferenz durchgeführt wurde aufgerufen, wodurch die Daten direkt aus dem Ausgabetensor abgerufen werden (über Tensor.asReadOnlyBuffer()).

<ph type="x-smartling-placeholder"></ph> öffentlich voidm runSignature (Map<StringObject>-Eingaben, Map<StringObject>-Ausgaben)

Wie bei runSignature(Map, Map, String), es muss jedoch kein signatureKey übergeben werden, vorausgesetzt, das Modell hat eine SignatureDef. Wenn das Modell mehr als eine SignatureDefin hat, gilt Folgendes: lösen eine Ausnahme aus.

WARNUNG: Dies ist eine experimentelle API, die sich ändern kann.

Parameter
Eingaben
Ausgaben

<ph type="x-smartling-placeholder"></ph> öffentlich voidm runSignature (Map<StringObject>-Eingaben, Map<StringObject>-Ausgaben, String signatureKey)

Führt Modellinferenz anhand von SignatureDef aus, die über signatureKey bereitgestellt werden.

Weitere Informationen zu den zulässigen Ein- und Ausgabe findest du unter run(Object, Object) Datentypen.

WARNUNG: Dies ist eine experimentelle API, die sich ändern kann.

Parameter
Eingaben Eine Zuordnung vom Eingabenamen in der SignatureDef zu einem Eingabeobjekt.
Ausgaben Eine Zuordnung vom Ausgabenamen in SignatureDef zu Ausgabedaten. Dieses Feld kann leer sein, wenn das Der Aufrufer möchte die Tensor-Daten direkt nach der Inferenz abfragen (z.B. die Ausgabeform dynamisch ist oder für die Ausgabepuffer-Ziehpunkte verwendet werden.
signatureKey Signaturschlüssel zur Identifizierung von SignatureDef.
Löst aus
IllegalArgumentException wenn inputs null oder leer ist, wenn outputs oder signatureKey ist null oder wenn beim Ausführen der Inferenz ein Fehler auftritt.

<ph type="x-smartling-placeholder"></ph> öffentlich voidm setCancelled (Boolescher Wert abgebrochen)

Erweitert: Unterbricht die Inferenz während eines Anrufs an run(Object, Object).

Ein Abbruchs-Flag wird auf „true“ gesetzt, wenn diese Funktion aufgerufen wird. Der Dolmetscher wird Prüfen Sie das Flag zwischen Op-Aufrufen. Wenn es true lautet, stoppt der Interpreter Ausführung. Der Dolmetscher bleibt im Status „Abgebrochen“, bis er explizit „aufgehoben“ wird. von setCancelled(false)

WARNUNG: Dies ist eine experimentelle API, die sich ändern kann.

Parameter
abgebrochen true, um die Inferenz bestmöglich abzubrechen; false bis Fortsetzen.
Löst aus
IllegalStateException wenn der Interpreter nicht mit der stornierbaren die standardmäßig deaktiviert ist.