我正在尝试使用 nVidia DIGITS 和 Caffe 对大量图像进行分类。当我使用标准网络和我构建的网络时,一切正常。
但是,当我运行 GoogleNet 示例时,我可以看到几个精度层的结果。 CNN 中怎么会有多个精度层?有多个损失层是可以理解的,但是多个精度值意味着什么?我在学习过程中得到了几个准确度图。类似于此图片:lossX-top1
和 lossX-top5
表示精度层。我从 prototxt 中了解到,这些评估了前 1 名和前 5 名精度值,但是 lossX 精度层是什么?
尽管其中一些图收敛到 98% 左右,但当我在 'validation.txt'
上手动测试经过训练的网络时,我得到的值明显较低(对应于较低的三个精度图)。
有人可以对此有所了解吗?怎么会有多个不同值的精度层?
最佳答案
如果您仔细查看 'train_val.prototxt'
您会注意到确实有几个精度层从不同级别的主要“路径”分支出来。 loss1
在 inception 4a
之后评估层,loss2
在 inception 4d
之后评估和 loss3
是网络顶部的损失。将损失(和精度层)引入深度网络的中间表示可以在训练期间实现更快的梯度传播。这些中间精度衡量中间表示的收敛程度。
关于neural-network - Caffe 中的多个精度层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32966517/