2016-12-02 2 views
2

Für ein Experiment, das ich ausgeführt habe, ist Caffe abgestürzt. Mein Experiment beinhaltet das Training von Netzwerken auf verschiedenen Teilmengen der gleichen Daten mit dem AlexNet-Modell. Für jede Testversion erzeuge ich eine LMDB für diese bestimmte Teilmenge von Daten und modifiziere dann mein Netzwerk .prototxt, um den Parametern zu entsprechen. Für mehr als 40 Prüfungen hatte ich kein Problem. Eine bestimmte Testversion stürzt jedoch nach 227 Trainings-Iterationen konsistent ab. Der angegebene Fehler ist einfach "Busfehler (Core Dumped)". Dies geschieht unabhängig davon, ob ich das Training auf GPU oder CPU mache. Das Suchen hat keine Ergebnisse von jemand anderem ergeben, das diesen Fehler gehabt hat. Anscheinend ist es eine Art Speicheradressierungsfehler. Ich verwende eine Nvidia DIGITS-Box mit 64 GB RAM und 12 GB VRAM. Der Systemmonitor zeigt an, dass ich nicht annähernd den vollen Speicher des Systems nutze. Ich kann meinen Prototxt bereitstellen, wenn es hilfreich sein könnte. Der Datensatz ist jedoch zu groß, um hochgeladen zu werden (> 20 GB).Was bewirkt, dass Caffe einen Busfehler wirft

I1128 12: 50: 01.558748 20000 solver.cpp: 228] Iteration 227, Verlust = 5,8273
I1128 12: 50: 01.558786 20000 solver.cpp: 244] Zug Nettoleistung # 0: Verlust = 5,8273 (* 1 = 5,8273 Verlust)
I1128 12: 50: 01.558796 20000 sgd_solver.cpp: 106] Iteration 227, lr = 0.001 Busfehler (core dumped)

Gemäß dieser question, Busfehler sind nonexistant auf modernen Maschinen Intel, was ich benutze. Was könnte dieses Problem verursachen?

+0

Bitte teilen Sie den Core Dump. Das ist der richtige Startpunkt. – prabindh

+0

@ Prabindh Was ich gepostet habe, ist die Gesamtheit des Protokolls. Wenn der Core nicht in eine Systemprotokolldatei ausgelagert wird, habe ich nichts anderes. – dumbducky

+0

Normalerweise wird es unter Linux eine große Datei namens "core" sein, in demselben Verzeichnis, in dem Sie gerade laufen. Siehe auch http://stackoverflow.com/questions/17965/how-to-generate-a-core-dump-in-linux-when-a-process-gets-a-segmentation-fault – prabindh

Antwort

1

Ich entdeckte die Ursache. Ich benutzte einen anderen Computer, um die LMDB zu generieren und sie auf die Maschine zu übertragen, auf der cafe mit einem Flash-Laufwerk läuft. Aus irgendeinem Grund führt das Übertragen von Dateien auf dieses Flash-Laufwerk dazu, dass die lmdb von ~ 20 GB auf 15 GB ohne Warnung für mich abgeschnitten wird. Ich denke, das Caffe scheint abgestürzt zu sein, als es das unerwartete Ende der lmdb erreichte. Durch erneutes Übertragen der Datei und Sicherstellen, dass sie nicht abgeschnitten wurde, wurde das Problem behoben.

Verwandte Themen