2

对于我一直在运行的实验,Caffe 一直在崩溃。我的实验涉及使用 AlexNet 模型在相同数据的不同子集上训练网络。对于每个试验,我为该特定数据子集生成一个 LMDB,然后修改我的网络 .prototxt 以匹配参数。对于 40 多次试验,我没有任何问题。然而,一项特定的试验在 227 次训练迭代后始终崩溃。给出的错误只是“总线错误(核心转储)”。无论我是在 GPU 还是 CPU 上进行训练,都会发生这种情况。搜索没有产生任何其他有此错误的人的结果。显然这是某种内存寻址错误。我正在使用具有 64GB RAM 和 12GB VRAM 的 Nvidia DIGITS 盒子。系统监视器显示我正在使用系统的全部内存。如果可能有帮助,我可以提供我的 prototxt。但是,数据集太大,无法上传(>20GB)。

I1128 12:50:01.558748 20000 solver.cpp:228] 迭代 227,损失 = 5.8273
I1128 12:50:01.558786 20000 solver.cpp:244] 训练净输出 #0:损失 = 5.8273(* 1 = 5.8273 损失)
I1128 12 :50:01.558796 20000 sgd_solver.cpp:106] 迭代 227,lr = 0.001 总线错误(核心转储)

根据这个问题,我正在使用的现代英特尔机器上不存在总线错误。什么可能导致这个问题?

4

1 回答 1

2

我发现了原因。我使用另一台计算机生成 LMDB 并将其传输到使用闪存驱动器运行 caffe 的机器上。出于某种原因,将文件传输到此闪存驱动器会导致 lmdb 从 ~20GB 被截断到 15GB,而对我没有任何警告。我认为 caffe 在到达 lmdb 的意外结束时似乎已经崩溃。重新传输文件并确保它没有被截断解决了这个问题。

于 2016-12-07T16:30:27.513 回答