0

我是caffe的新手,在MNIST示例中,我认为标签应该与 softmax 层进行比较,但在lenet.prototxt. 我想知道为什么使用InnerProduct结果和标签来获得准确性,这似乎不合理。是因为我错过了图层中的某些内容吗?

4

1 回答 1

1

最后一个内积层的输出维度是 10,对应于你的问题的类数(数字 0~9)。损失层采用两个 blob,第一个是预测(ip2),第二个是数据层提供的标签。

loss_layer = SoftmaxLossLayer(name="loss", bottoms=[:ip2,:label])

它不产生任何输出——它所做的只是计算损失函数值,在反向传播开始时报告它,并启动关于 ip2 的梯度。这是所有魔术开始的地方。训练后(在测试阶段),在最后一层,期望结果来自乘法权重和 ip1(在最后一层计算);并且每个类(10个神经元之一)都有最大值被选择。

于 2016-01-02T12:40:35.610 回答