Caffe中的多个精确层

Igo*_*evo 6 neural-network deep-learning caffe conv-neural-network

我正在尝试使用nVidia DIGITS和Caffe对大量图像进行分类.当我使用我构建的标准网络和网络时,一切都运行良好.

但是,当我运行GoogleNet示例时,我可以看到几个精度层的结果.如何在CNN中存在多个准确度层?拥有多个损耗层是可以理解的,但多个精度值意味着什么?我在学习期间得到了几个准确度图.与此图片类似:学习过程

lossX-top1lossX-top5表示准确度的层.我从原型文件中了解到,这些评估了前1和前5的精度值,但是还有什么是lossX精度层?

即使这些图中的一些收敛到98%左右,当我手动测试训练好的网络时'validation.txt',我得到的值明显较低(对应于较低三个精度图的值).

有人可以对此有所了解吗?如何有多个具有不同值的精度图层?

Sha*_*hai 4

如果仔细观察,'train_val.prototxt'您会发现确实有几个精度层在不同级别上从主“路径”分支出来。loss1在层后评估inception 4aloss2在层后评估inception 4dloss3是网顶部的损失。将损失(和准确性层)引入深度网络的中间表示可以在训练期间实现更快的梯度传播。这些中间精度衡量中间表示的收敛程度。

  • @IgorŠevo 这取决于你的“deploy.prototxt”。您可以决定从哪个分类器层读取类概率。 (2认同)
  • @IgorŠevo,这取决于您使用什么接口进行分类,默认情况下,python 包装器 `classifier.py` 输出最后一个输出层(没有其他层使用其“顶部”作为“底部”的层......)但是,您可以为 pytohn 分类器提供一个 blob 名称列表,并在每个“前向”传递中获得多个输出。 (2认同)