2016-12-02 46 views
2

對於我一直在跑的一個實驗,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,總線錯誤是現代Intel機器不存在的,我正在使用。什麼可能導致這個問題?

+0

請分享核心轉儲。這是正確的開始。 – prabindh

+0

@prabindh我發佈的是整個日誌。除非核心轉儲到系統日誌文件,否則我什麼也沒有。 – dumbducky

+0

通常,在Linux中,它將是一個名爲「core」的大文件,位於您所在的同一目錄中。另請參閱http://stackoverflow.com/questions/17965/how-to-generate-a-core-dump-in-linux-when-a-process-gets-a-segmentation-fault – prabindh

回答

1

我發現原因。我正在使用另一臺計算機來生成LMDB並將其傳輸到使用閃存驅動器運行caffe的計算機。出於某種原因,將文件傳輸到此閃存驅動器會導致lmdb從大約20GB截至15GB,而對我沒有任何警告。我認爲caffe在達到lmdb的意外結束時似乎崩潰了。重新傳輸文件並確保文件不被截斷解決了問題。