Computer vision 数据层预取队列为空,后跟丢失0

Computer vision 数据层预取队列为空,后跟丢失0,computer-vision,neural-network,deep-learning,caffe,Computer Vision,Neural Network,Deep Learning,Caffe,我正在自己的数据集上微调caffenet。 我已经在flickr风格的数据集上成功地完成了, 所以我修改了solver和train_val prototxt文件,以指向我的数据集,并使用新的输出维度(=100类) 我的数据集大小为1.88M图像用于训练,0.48M图像用于测试 当我开始训练时,它暂停了一会儿 ... blocking_queue.cpp:50] Data layer prefetch queue empty 然后进行如下工作: ... solver.cpp:414] T

我正在自己的数据集上微调caffenet。 我已经在flickr风格的数据集上成功地完成了, 所以我修改了solver和train_val prototxt文件,以指向我的数据集,并使用新的输出维度(=100类)

我的数据集大小为1.88M图像用于训练,0.48M图像用于测试

当我开始训练时,它暂停了一会儿

... blocking_queue.cpp:50] Data layer prefetch queue empty
然后进行如下工作:

... solver.cpp:414]     Test net output #0: accuracy = 0.0002
... solver.cpp:414]     Test net output #1: loss = 5.6139 (* 1 = 5.6139 loss)
... solver.cpp:242] Iteration 0, loss = 7.23329
... solver.cpp:258]     Train net output #0: loss = 7.23329 (* 1 = 7.23329 loss)
... solver.cpp:571] Iteration 0, lr = 0.001
... solver.cpp:242] Iteration 20, loss = 0
... solver.cpp:258]     Train net output #0: loss = 0 (* 1 = 0 loss)
... solver.cpp:571] Iteration 20, lr = 0.001
... solver.cpp:242] Iteration 40, loss = 0
... solver.cpp:258]     Train net output #0: loss = 0 (* 1 = 0 loss)
... solver.cpp:571] Iteration 40, lr = 0.001
等等。 显然,根本没有计算任何损失。奇怪的是,迭代0的初始损失似乎足够公平

显然,数据没有正确加载。我使用文本文件列出文件路径及其标签

我正在使用softmax loss

我尝试将初始学习率降低到1/10,但没有改变

**编辑:我尝试了1/1000的初始学习率。起初,它似乎起了作用。经过大约300次迭代后,它的损失再次迅速下降,准确率达到100%,这意味着可能又出了问题。caffenet和VGG均出现症状


你知道可能出了什么问题吗?

问题是用于训练和测试数据的文本文件没有被洗牌,而是被排序了。因此,测试只在同一类的图像上进行,并且参数也从同一类的图像中学习,从而很快获得100%的准确率