我在多标签数据集上训练网络。
我的培训文件如下所示:
img1 1 0 1 0 0 0 0 1 .... 1
...
...
imgN 0 1 0 1 0 1 0 0 .... 0
从阅读教程中我了解到我必须使用SigmoidCrossEntropyLoss层。
我的问题是,在训练之后,我需要使用哪个层来使用extract_feat.bin脚本提取每个标签的概率?
贝娄我写了我网络的最后一层。
谢谢!
layer {
name: "fc8-1"
type: "InnerProduct"
bottom: "fc7"
top: "fc8-1"
inner_product_param {
num_output: 12400
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.1
}
}
}
layer {
name: "loss"
type: "SigmoidCrossEntropyLoss"
bottom: "fc8-1"
bottom: "label"
top: "loss"
}
答案 0 :(得分:2)
使用"SigmoidCrossEntropy"
损失图层进行培训时,您需要使用简单的"Sigmoid"
图层替换损失图层以进行测试:
layer {
type: "Sigmoid"
bottom: "fc8-1"
top: "class_prob"
name: "class_prob"
}
您的测试时输出应为12,400维向量(每个输入)范围[0..1]
中表示类概率的所有条目。