interpreter.run(input, output) 是如何工作的?输出是什么以及如何处理输出以最高精度打印标签

How does interpreter.run(input, output) work? What is the output and how to process the output to print the label with the highest accuracy

我通过遵循此 link 学习了如何使用解释器,并看到了代码 运行 推论:

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

我找到了一个使用 TensorFlow 解释器的示例:gesture_classification 但是,我仍然不知道它们 labelProbArray 是什么以及如何处理以最高置信度打印标签

手势分类示例中的labelProbArray被初始化为一维数组(技术上,第一维长度为1的二维数组),如手势ImageClassifierFloatInception.java所示分类示例。它的长度等于标签的数量,因此数组中的每个值代表当前数据与该特定标签相关联的概率。例如labelProbArray = new float[][]{{0.6, 0.3, 0.1}};,则当前数据为手势标签0的概率为60%,当前数据为手势1的概率为30%,以此类推。如果找到概率值最大的数组索引并打印出来,那就是置信度最高的标签。

与此同时,更好地理解 interpreter.run(input, output) 工作原理的示例是 model_personalization. The interpreter invocation shown in the LiteMultipleSignatureModel.java file is directly matched with the function signature defined in the Python model