PyCaffe输出层用于测试二进制分类模型

时间:2017-03-19 06:28:40

标签: python deep-learning caffe convolution pycaffe

我很好地调整vgg-16进行二进制分类。我使用sigmoidLoss层作为损失函数。

为了测试模型,我编写了一个python文件,在其中我使用图像加载模型并使用以下方式获得输出:

out = net.forward()

我的疑问是我应该从Sigmoid或SigmoidLoss层获取输出。 2层之间有什么区别。

我的输出实际上是输入图像为1级的概率。**

2 个答案:

答案 0 :(得分:1)

SigmoidWithLoss图层每批输出单个数字,代表地面实况标签的损失。

另一方面,Sigmoid层输出批次中每个输入的概率值。此输出要求计算地面实况标签。

如果您正在寻找每个输入的概率,您应该查看Sigmoid图层的输出

答案 1 :(得分:1)

要对测试集进行预测,您可以通过修改原始原型文本来创建单独的部署原型。

以下是相同的步骤

  • 删除用于培训的数据层,就分类而言,我们不再为我们的数据提供标签。
  • 删除任何依赖于数据标签的图层。
  • 将网络设置为接受数据。
  • 让网络输出结果。

您可以在此处详细了解:deploy prototxt

否则,您可以添加
 包括{     阶段:火车   }

到您的SigmoidWithLoss图层,以便在测试网络时不会使用它。要进行预测,只需检查Sigmoid图层的输出。