既知の間接的なサブクラス |
TensorFlow Lite モデル インタープリタのインターフェース(試験運用版のメソッドを除く)。
InterpreterApi
インスタンスは、事前トレーニング済みの TensorFlow Lite モデルをカプセル化します。
モデルの推論のために実行されます。
たとえば、モデルが 1 つの入力のみを受け取り、1 つの出力のみを返すとします。
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);
}
形状 [] と形状 [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 未満の場合は、 保証されるものではありません
ネストされたクラス
クラス | InterpreterApi.Options | ランタイム インタープリタの動作を制御するオプション クラス。 |
パブリック メソッド
抽象的 無効 |
allocateTensors()
必要に応じて、すべてのテンソルの割り当てを明示的に更新します。
|
抽象的 無効 |
close()
InterpreterApi インスタンスに関連付けられているリソースを解放します。 |
静的 InterpreterApi |
create(ファイル modelFile、InterpreterApi.Options オプション)
指定されたモデルとオプションを使用して、
InterpreterApi インスタンスを構築します。 |
静的 InterpreterApi |
create(ByteBuffer byteBuffer、InterpreterApi.Options options)
指定されたモデルとオプションを使用して、
InterpreterApi インスタンスを構築します。 |
抽象的 整数 | |
抽象的 Tensor |
getInputTensor(int inputIndex)
指定された入力インデックスに関連付けられたテンソルを取得します。
|
抽象的 整数 |
getInputTensorCount()
入力テンソルの数を取得します。
|
抽象的 長め |
getLastNativeInferenceDurationNanoseconds()
ネイティブ推論のタイミングを返します。
|
抽象的 整数 | |
抽象的 Tensor |
getOutputTensor(int outputIndex)
指定された出力インデックスに関連付けられたテンソルを取得します。
|
抽象的 整数 |
getOutputTensorCount()
出力テンソルの数を取得します。
|
抽象的 無効 |
resizeInput(int idx, int[] dims, boolean strict)
ネイティブ モデルの idx 番目の入力を、指定されたディメンションに変更します。
|
抽象的 無効 |