是什么导致Caffe抛出Bus错误

时间:2016-12-02 15:17:57

标签: machine-learning caffe bus-error

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

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

1 个答案:

答案 0 :(得分:1)

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