2016-12-02 3 views
2

Pour une expérience que j'ai lancée, Caffe s'est écrasé. Mon expérience consiste à former des réseaux sur différents sous-ensembles des mêmes données en utilisant le modèle AlexNet. Pour chaque essai, je génère un LMDB pour ce sous-ensemble particulier de données, puis je modifie mon réseau .prototxt pour qu'il corresponde aux paramètres. Pour plus de 40 essais, je n'ai eu aucun problème. Un essai particulier, cependant, se bloque systématiquement après 227 itérations de formation. L'erreur donnée est simplement "Erreur de bus (core dumped)". Cela se produit indépendamment du fait que je fasse la formation sur GPU ou CPU. La recherche n'a donné aucun résultat de quelqu'un d'autre qui a eu cette erreur. Apparemment, c'est une sorte d'erreur d'adressage de la mémoire. J'utilise une boîte Nvidia DIGITS avec 64 Go de RAM et 12 Go de VRAM. Le moniteur du système montre que je n'utilise nulle part près de la mémoire complète du système. Je peux fournir mon prototex si cela peut être utile. Cependant, l'ensemble de données est trop volumineux (> 20 Go).Qu'est-ce qui cause une erreur de bus à Caffe?

I1128 12: 50: 01,558748 20000 solver.cpp: 228] Itération 227, perte = 5,8273
I1128 12: 50: 01,558786 20000 solver.cpp: 244] train production nette # 0: perte = 5,8273 (* 1 = 5,8273 perte)
I1128 12: 50: 01,558796 20000 sgd_solver.cpp: 106] 227 Iteration, lr = 0,001 erreur de bus (core dumped)

Selon cette question, les erreurs de bus sont couinent sur les machines modernes Intel, que j'utilise. Qu'est-ce qui pourrait causer ce problème?

+0

Veuillez partager le vidage du noyau. C'est le bon endroit pour commencer. – prabindh

+0

@prabindh Ce que j'ai posté est l'intégralité du journal. À moins que le noyau ne soit sauvegardé dans un fichier journal système, je n'ai rien d'autre. – dumbducky

+0

Habituellement, sous Linux, il s'agira d'un gros fichier appelé "core" dans le même répertoire que celui d'où vous venez. Voir aussi http://stackoverflow.com/questions/17965/how-to-generate-a-core-dump-in-linux-when-a-process-gets-a-segmentation-fault – prabindh

Répondre

1

J'ai découvert la cause. J'utilisais un autre ordinateur pour générer le LMDB et le transférer vers la machine qui fonctionne avec un lecteur flash. Pour une raison quelconque, le transfert de fichiers sur ce lecteur flash conduit à lmdb tronqué de ~ 20 Go à 15 Go sans avertissement pour moi. Je pense que caffe semble s'être crashé quand il a atteint la fin inattendue de la lmdb. Retransférer le fichier et s'assurer qu'il n'était pas tronqué a résolu le problème.