【问题标题】:Data Layer Prefetch Queue Empty followed by loss 0数据层预取队列为空,后跟丢失 0
【发布时间】:2015-12-12 14:23:07
【问题描述】:

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

我的数据集大小为 188 万张用于训练的图像和 0.48 万张用于测试的图像。

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

... 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 损失。

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

**edit:我尝试了 1/1000 的初始学习率。最初它似乎工作。大约 300 次迭代后,它的损失很快再次下降,准确率达到 100%,这表明可能又出现了问题。 caffenet 和 VGG 均出现上述症状。

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

【问题讨论】:

    标签: computer-vision neural-network deep-learning caffe


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-11
      • 2013-09-04
      • 1970-01-01
      • 1970-01-01
      • 2020-04-10
      • 1970-01-01
      • 2012-03-05
      • 1970-01-01
      相关资源
      最近更新 更多