by Anonymous » 22 Dec 2024, 06:08
Es ist ein wirklich seltsamer Fehler.
Umgebung: tf 1.12 + cuda9.0 + cudnn 7.5 + Single RTX 2080
Heute habe ich versucht, das YOLO V3-Netzwerk auf meinem neuen Gerät zu trainieren. Die Chargengröße beträgt 4. Am Anfang lief alles richtig, das Training begann wie gewohnt und ich konnte die Verlustreduzierung während des Trainingsvorgangs sehen.
Aber bei etwa 35 Runden wurde eine Meldung gemeldet:
2020-03-20 13:52 :01.404576: E tensorflow/stream_executor/cuda/cuda_event.cc:48] Fehler beim Abfragen des Ereignisstatus: Ereignis konnte nicht abgefragt werden: CUDA_ERROR_ILLEGAL_ADDRESS: Es wurde ein unzulässiger Speicherzugriff festgestellt
2020-03-20 13:52:01.404908: F tensorflow/core/common_runtime/gpu/gpu_event_mgr.cc:274] Unerwarteter Ereignisstatus: 1
und den Zugprozess verlassen.
Ich habe es mehrmals versucht. Es geschah zufällig. Vielleicht 30 Minuten oder mehrere Stunden nach Beginn des Trainingsprozesses.
Aber wenn ich die Batch-Größe auf 2 ändern würde, könnte das Training erfolgreich sein.
Warum ist das passiert? Wenn meine Umgebung nicht richtig oder nicht für RTX 2080 geeignet ist, sollte dieser Fehler zu Beginn des Zugfortschritts, aber in der Mitte, auftreten. Die Schichten in meinem Yolo-Netzwerk waren zu Beginn alle trainierbar, sodass sich während des Trainingsprozesses nichts änderte. Warum konnte es in der ersten Runde richtig trainieren, scheiterte aber in der Mitte? Warum könnte eine kleinere Chargengröße erfolgreich trainieren?
Und was soll ich jetzt tun? Die Lösungen, die ich mir vorstellen kann, sind:
1: Kompilieren Sie tf 1.12 in cuda 10 + cudnn 7.5 und versuchen Sie es erneut.
2: Vielleicht Tensorflow und cuda aktualisieren?
Alles kostet viel.
Es ist ein wirklich seltsamer Fehler.
Umgebung: tf 1.12 + cuda9.0 + cudnn 7.5 + Single RTX 2080
Heute habe ich versucht, das YOLO V3-Netzwerk auf meinem neuen Gerät zu trainieren. Die Chargengröße beträgt 4. Am Anfang lief alles richtig, das Training begann wie gewohnt und ich konnte die Verlustreduzierung während des Trainingsvorgangs sehen.
Aber bei etwa 35 Runden wurde eine Meldung gemeldet:
2020-03-20 13:52 :01.404576: E tensorflow/stream_executor/cuda/cuda_event.cc:48] Fehler beim Abfragen des Ereignisstatus: Ereignis konnte nicht abgefragt werden: CUDA_ERROR_ILLEGAL_ADDRESS: Es wurde ein unzulässiger Speicherzugriff festgestellt
2020-03-20 13:52:01.404908: F tensorflow/core/common_runtime/gpu/gpu_event_mgr.cc:274] Unerwarteter Ereignisstatus: 1
und den Zugprozess verlassen.
Ich habe es mehrmals versucht. Es geschah zufällig. Vielleicht 30 Minuten oder mehrere Stunden nach Beginn des Trainingsprozesses.
Aber wenn ich die Batch-Größe auf 2 ändern würde, könnte das Training erfolgreich sein.
Warum ist das passiert? Wenn meine Umgebung nicht richtig oder nicht für RTX 2080 geeignet ist, sollte dieser Fehler zu Beginn des Zugfortschritts, aber in der Mitte, auftreten. Die Schichten in meinem Yolo-Netzwerk waren zu Beginn alle trainierbar, sodass sich während des Trainingsprozesses nichts änderte. Warum konnte es in der ersten Runde richtig trainieren, scheiterte aber in der Mitte? Warum könnte eine kleinere Chargengröße erfolgreich trainieren?
Und was soll ich jetzt tun? Die Lösungen, die ich mir vorstellen kann, sind:
1: Kompilieren Sie tf 1.12 in cuda 10 + cudnn 7.5 und versuchen Sie es erneut.
2: Vielleicht Tensorflow und cuda aktualisieren?
Alles kostet viel.