【问题标题】:Multiple accuracy layers in CaffeCaffe 中的多个精度层
【发布时间】:2015-10-06 09:34:21
【问题描述】:

我正在尝试使用 nVidia DIGITS 和 Caffe 对大量图像进行分类。当我使用标准网络和自己构建的网络时,一切正常。

但是,当我运行 GoogleNet 示例时,我可以看到几个准确度层的结果。 CNN 中如何有多个准确度层?有多个损失层是可以理解的,但是多个准确度值是什么意思呢?我在学习过程中得到了几个准确度图。类似这张图:

lossX-top1lossX-top5 表示精度层。我从 prototxt 了解到,这些评估前 1 和前 5 的准确度值,但是 lossX 准确度层是什么?

尽管其中一些图表收敛到 98% 左右,但当我在 'validation.txt' 上手动测试经过训练的网络时,我得到的值明显较低(对应于较低的三个准确度图表)。

有人可以解释一下吗?怎么会有多个不同值的精度层?

【问题讨论】:

    标签: neural-network deep-learning caffe conv-neural-network


    【解决方案1】:

    如果您仔细查看'train_val.prototxt',您会注意到确实有几个精度层在不同级别从主要“路径”分支出来。 loss1inception 4a 层之后评估,loss2inception 4d 之后评估,loss3 是网络顶部的损失。将损失(和准确度层)引入深度网络的中间表示允许在训练期间更快的梯度传播。这些中间精度衡量了中间表示的收敛程度。

    【讨论】:

    • 那么,当网络在训练后用于对随机图像进行分类时,将使用哪一层来决定类别?最深的?
    • @IgorŠevo 这取决于您的deploy.prototxt。您可以决定从哪个分类器层读取类概率。
    • 我是否误解了“准确性”层的含义?它用于对验证集进行分类(如果在 prototxt 中设置)并返回分类准确度?
    • @IgorŠevo 每个准确度层测量不同分类层的验证准确度(softmax 层的输出)。
    • @IgorŠevo 这取决于您使用什么接口进行分类,python 包装器classifier.py 默认输出最后一个输出层(没有其他层使用其“顶部”作为“ bottom"...) 但是,您可以为 pytohn 分类器提供一个 blob 名称列表,并在每个“前向”传递中获得多个输出。
    猜你喜欢
    • 2015-11-21
    • 1970-01-01
    • 2017-02-17
    • 2018-08-20
    • 1970-01-01
    • 2019-01-06
    • 1970-01-01
    • 2019-10-12
    • 2018-07-06
    相关资源
    最近更新 更多