Neural network Caffe中的精度保持在0.1且不变

Neural network Caffe中的精度保持在0.1且不变,neural-network,caffe,Neural Network,Caffe,在整个训练过程中,准确度为0.1。我做错了什么 模型、解算器和部分日志在此: png格式的拓扑: 另外,我正在AWS上使用最新版本的Caffe和g2.2xlarge实例 您正在处理包含10个类的CIFAR-10数据集。当网络训练开始时,第一次猜测通常是随机的,因此您的准确度为1/N,其中N是类数。在您的情况下,它是1/10,即0.1。如果你的准确度在一段时间内保持不变,这意味着你的人际网络没有学到任何东西。这可能是因为学习率较高。训练网络的基本思想是计算损失并将其传播回来。梯度与学习率相乘,

在整个训练过程中,准确度为0.1。我做错了什么

模型、解算器和部分日志在此:

png格式的拓扑:


另外,我正在AWS上使用最新版本的Caffe和g2.2xlarge实例

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

我知道这条线索已经很老了,但也许我的答案对某些人有所帮助。我也经历过同样的问题,精确程度就像随机猜测一样

帮助的是将精度层之前最后一层的输出数量设置为标签数量

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


有关更多信息,请参见第4.4节:

无法从您发送的信息中辨别。如何初始化权重?随机的微调预先训练的重量?看起来您的RELU已饱和:它们的输出在“0”范围内,因此梯度为零。尝试用PReLU替换ReLUs。看看它是否为你改变了一切,@Shai:看看solver.prototxt文件。这并不是说不可能!尝试将
debug\u info:true
添加到您的
solver.prototxt
-这将使caffe在训练期间打印一些有关激活和渐变的信息。这些信息可能非常有用。我认为在读取图像数据后立即退出数据不是一个好方法。