从 TFlite 中的 typed_output_tensor 提取输出数据

Mav*_*var 5 c++ tensorflow tensorflow-lite

预先感谢您的支持。

我试图在 .tflite U-net 神经网络上进行推理后获取张量的输出。我使用 Tensorflow lite 图像分类代码作为基线。

我需要调整代码以执行分段任务。我的问题是如何访问推断模型的输出(128x128x1)并将结果写入图像?

我已经调试了代码并探索了许多不同的方法。不幸的是,我对 C++ 语言没有信心。我发现命令:interpreter->typed_output_tensor<float>(0)应该是我需要的,也在这里引用:https: //www.tensorflow.org/lite/guide/inference#loading_a_model。但是,我无法访问网络生成的 128x128 张量。

您可以在以下地址找到代码:https://github.com/tensorflow/tensorflow/blob/770481fb3e9126f9a29db5667f528e450d54d719/tensorflow/lite/examples/label_image/label_image.cc

有趣的部分在这里(第 217 -224 行):

const float threshold = 0.001f;

std::vector<std::pair<float, int>> top_results;

int output = interpreter->outputs()[0];
TfLiteIntArray* output_dims = interpreter->tensor(output)->dims;
// assume output dims to be something like (1, 1, ... ,size)
auto output_size = output_dims->data[output_dims->size - 1];
Run Code Online (Sandbox Code Playgroud)

我期望保存在图像中的值或保存输出张量的替代方法