其他分享
首页 > 其他分享> > TensorFlow2.8.0代码分析之例子Lable_Image_main.cc_函数PrintTopLabels

TensorFlow2.8.0代码分析之例子Lable_Image_main.cc_函数PrintTopLabels

作者:互联网

函数:Status PrintTopLabels(const std::vector<Tensor>& outputs,
                      const string& labels_file_name)

函数作用:给定模型运行的输出,以及包含标签的文件名,这会打印出得分最高的前五名。

函数声明情况如下:

 

函数声明文件如下:

 

函数流程图如下:

 

函数逻辑顺序图如下:

 

函数原始代码如下:

// Given the output of a model run, and the name of a file containing the labels

this prints out the top five highest-scoring values.

Status PrintTopLabels(const std::vector<Tensor>& outputs,

                      const string& labels_file_name) {

  std::vector<string> labels;

  size_t label_count;

  Status read_labels_status =

      ReadLabelsFile(labels_file_name, &labels, &label_count);

  if (!read_labels_status.ok()) {

    LOG(ERROR) << read_labels_status;

    return read_labels_status;

  }

  const int how_many_labels = std::min(5, static_cast<int>(label_count));

  Tensor indices;

  Tensor scores;

  TF_RETURN_IF_ERROR(GetTopLabels(outputs, how_many_labels, &indices, &scores));

  tensorflow::TTypes<float>::Flat scores_flat = scores.flat<float>();

  tensorflow::TTypes<int32>::Flat indices_flat = indices.flat<int32>();

  for (int pos = 0; pos < how_many_labels; ++pos) {

    const int label_index = indices_flat(pos);

    const float score = scores_flat(pos);

    LOG(INFO) << labels[label_index] << " (" << label_index << "): " << score;

  }

  return Status::OK();

}

标签:Lable,const,flat,cc,labels,pos,label,PrintTopLabels,indices
来源: https://blog.csdn.net/qqq9668/article/details/123307912