我很好地调整vgg-16进行二进制分类。我使用sigmoidLoss层作为损失函数。
为了测试模型,我编写了一个python文件,在其中我使用图像加载模型并使用以下方式获得输出:
out = net.forward()
我的疑问是我应该从Sigmoid或SigmoidLoss层获取输出。 2层之间有什么区别。
我的输出实际上是输入图像为1级的概率。**
答案 0 :(得分:1)
SigmoidWithLoss
图层每批输出单个数字,代表地面实况标签的损失。
另一方面,Sigmoid
层输出批次中每个输入的概率值。此输出不要求计算地面实况标签。
如果您正在寻找每个输入的概率,您应该查看Sigmoid
图层的输出
答案 1 :(得分:1)
要对测试集进行预测,您可以通过修改原始原型文本来创建单独的部署原型。
以下是相同的步骤
您可以在此处详细了解:deploy prototxt
否则,您可以添加
包括{
阶段:火车
}
到您的SigmoidWithLoss图层,以便在测试网络时不会使用它。要进行预测,只需检查Sigmoid图层的输出。