从TFlite中的typed_output_tensor中提取输出数据

时间:2019-06-28 16:12:19

标签: 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];

我希望保存在图像中的值或保存输出张量的另一种方法

0 个答案:

没有答案