Sous-classes indirectes connues |
Interface vers l'interpréteur de modèle TensorFlow Lite, à l'exclusion des méthodes expérimentales.
Une instance InterpreterApi
encapsule un modèle TensorFlow Lite pré-entraîné, dans lequel
sont exécutées pour l'inférence de modèle.
Par exemple, si un modèle n'accepte qu'une seule entrée et ne renvoie qu'une seule sortie:
try (InterpreterApi interpreter =
new InterpreterApi.create(file_of_a_tensorflowlite_model)) {
interpreter.run(input, output);
}
Si un modèle accepte plusieurs entrées ou sorties:
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);
}
Si un modèle accepte ou produit des Tensors de chaîne:
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);
}
Notez qu'il existe une distinction entre les formes [] et shape[1]. Pour Tensor de chaîne scalaire résultats:
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);
L'ordre des entrées et des sorties est déterminé lors de la conversion du modèle TensorFlow en TensorFlow Lite avec Toco, tout comme les formes par défaut des entrées.
Lorsque les entrées sont fournies sous forme de tableaux (multidimensionnels), le ou les Tensors d'entrée correspondants
être implicitement redimensionné en fonction de la forme de ce tableau. Lorsque les entrées sont fournies en tant que types Buffer
, aucun redimensionnement implicite n'est effectué. l'appelant doit s'assurer que la taille en octets Buffer
correspond soit à celle du Tensor correspondant, soit à la première
redimensionner le Tensor via resizeInput(int, int[])
. Les informations sur la forme et le type de Tensor peuvent
obtenu via la classe Tensor
, disponible via getInputTensor(int)
et getOutputTensor(int)
.
AVERTISSEMENT:InterpreterApi
instances ne sont pas sécurisées.
AVERTISSEMENT:Une instance InterpreterApi
possède des ressources qui doivent être
explicitement libérées en appelant close()
La bibliothèque TFLite est basée sur l'API 19 du NDK. Cela peut fonctionner pour les niveaux d'API Android inférieurs à 19, mais ce n'est pas garanti.
Classes imbriquées
classe | InterpreterApi.Options | Classe d'options permettant de contrôler le comportement de l'interpréteur lors de l'exécution. |
Méthodes publiques
abstrait vide |
allocateTensors()
Met à jour explicitement les allocations pour tous les Tensors, si nécessaire.
|
abstrait vide |
close()
Libérez les ressources associées à l'instance
InterpreterApi . |
statique InterpreterApi |
create(options File modelFile, InterpreterApi.Options)
Construit une instance
InterpreterApi à l'aide du modèle et des options spécifiés. |
statique InterpreterApi |
create(options byteBuffer ByteBuffer, InterpreterApi.Options)
Construit une instance
InterpreterApi à l'aide du modèle et des options spécifiés. |
abstrait entier |
getInputIndex(Chaîne opName)
Récupère l'index d'une entrée en fonction du nom d'opération de l'entrée.
|
abstrait Tensor |
getInputTensor(int inputIndex)
Récupère le Tensor associé à l'index d'entrée fourni.
|
abstrait entier |
getInputTensorCount()
Récupère le nombre de Tensors d'entrée.
|
abstrait Version longue |
getLastNativeInferenceDurationNanoseconds()
Renvoie la durée d'inférence native.
|
abstrait entier |
getOutputIndex(Chaîne opName)
Récupère l'index d'une sortie en fonction du nom d'opération de la sortie.
|
abstrait Tensor |
getOutputTensor(int outputIndex)
Récupère le Tensor associé à l'index de sortie fourni.
|
abstrait entier |