Caffe的准确度保持在0.1并且不会改变

时间:2016-02-27 09:47:03

标签: neural-network caffe

通过所有培训过程,准确度为0.1。我做错了什么?

模型,求解器和日志的一部分: https://gist.github.com/yutkin/3a147ebbb9b293697010

png格式的拓扑:

P.S。我在AWS上使用最新版本的Caffe和g2.2xlarge实例。

2 个答案:

答案 0 :(得分:2)

您正在处理有10个类的CIFAR-10数据集。当网络训练开始时,第一个猜测通常是随机的,因为你的准确度是1/N,其中N是类的数量。在您的情况下,它是1/10,即0.1。如果您的准确性随着时间的推移保持不变,则意味着您的网络无法学习任何东西。这可能是由于学习率很高而发生的。培训网络的基本思想是计算损失并将其传播回去。梯度乘以学习率并加到当前的权重和偏差中。如果学习率太大,您可能每次都超过局部最小值。如果它太小,收敛会很慢。我看到你的base_lr在这里是0.01。就我的经验而言,这有点大。您可能希望在开始时将其保持在0.001,然后在您发现准确性没有提高时继续将其减少10倍。但是,任何低于0.00001的东西通常都不会产生太大影响。诀窍是观察培训的进度并在需要时进行参数更改。

答案 1 :(得分:0)

我知道线程很老但也许我的回答可以帮到某个人。我经历了同样的问题,准确性随机猜测。

有助于将精确层之前的最后一层的输出数量设置为标签数量。

在您的情况下应该是ip2图层。打开网络的模型定义,并将num_outputs设置为标签数量。

有关更多信息,请参阅第4.4节:A Practical Introduction to Deep Learning with Caffe and Python