【问题标题】:How to see Caffe perdiction label of the test set?如何查看测试集的 Caffe 预测标签?
【发布时间】:2017-12-20 11:37:14
【问题描述】:

已经在github 中提出过问题,但是由于没有发布具体的答案,并且对 Caffe 框架和我要解释的其他内容进行了一些更改,我认为最好再问一次。

当 Caffe 框架学习/测试阶段发生时,在每次迭代中,它都会给我们一个 Loss 和 Accuracy 值,但 Accuracy 不是一个好的测量参数,所以我需要查看测试图像上的每个预测,一个一个 来计算其他测量参数,例如精度和召回率。

如果我跑:

import caffe

net = caffe.Net('/path/to/model_def.prototxt', '/path/to/model/weights')
out = net.forward()

它将为我们提供out['prob'] 中的第一批图像的预测,我不想预测这批图像,如何逐个获取主题?

【问题讨论】:

  • 只用一批size one?或者只是分析一批图像?我没有看到问题。
  • @MatiasValdenegro ,你不能在 deploy prototxt 中改变 batch size,你也不能在 main prototxt 里改变 batch size 为 1,这会毁了你的学习阶段。

标签: python deep-learning caffe


【解决方案1】:

结果将存储在out['prob'].data 数组中。数组的第一维对应批次。因此,要查看ith 图像的结果,请检查out['prob'].data[i] 中的值。

假设这是分类,其中每个图像都有一个为每个类别分配的值,对应于jth 类别的ith 图像的输出可以在out['prob'].data[i][j] 找到。

【讨论】:

  • 谢谢。好主意。但是 Caffe 是按顺序读取我的 csv 图像文件吗? (我没有创建 lmdb 数据库)
  • @comeymacdonald 你是如何提供输入的?
  • 我已经制作了 ([image/address] [label]) 的 CSV 文件,并在数据层中将其地址提供给 caffe。
  • @comeymacdonald 我不确定这个问题的答案,抱歉。我的猜测是它应该是有序的。
  • 对不起,我这样做了,net.blobs['prob'].data 实际上给了我一个 2x1 矩阵,而 out['prob'].data 给了我空矩阵,所以那是哪个图像?批量图像发生了什么?我必须运行 30,000 次才能获得全部主题吗?
猜你喜欢
  • 2016-10-31
  • 2015-09-29
  • 2020-06-21
  • 1970-01-01
  • 2018-05-17
  • 2016-04-04
  • 1970-01-01
  • 2017-05-03
  • 2015-08-31
相关资源
最近更新 更多