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

该博客介绍了如何使用StatusPrintTopLabels函数,从模型运行结果中获取前五个得分最高的标签,并结合标签文件进行详细输出。函数通过读取标签文件、确定标签数量、找到最高分标签并打印,展示了人工智能模型评估过程中的关键步骤。
摘要由CSDN通过智能技术生成

函数: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();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qqq9668

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值