Ich trainiere einige Musikdaten auf einem LSTM-RNN in Tensorflow und stoße auf ein Problem mit der GPU-Speicherzuweisung, das ich nicht verstehe: Ich stoße auf ein OOM, wenn anscheinend gerade genug VRAM verfügbar ist . Etwas Hintergrund: Ich arbeite an Ubuntu Gnome 16.04, mit einem GTX1060 6GB, Intel Xeon E3-1231V3 und 8GB RAM. So jetzt zuerst der Teil der Fehlermeldung, die ich verstehen kann, in der und ich werde die gesamte Fehlermeldung am Ende wieder für jeden, der es bitten könnte, zu helfen:
I tensorflow / core / common_runtime / bfc_allocator.cc: 696] 8 Chunks von Größe 256 in Summe 2,0KiB I tensorflow / core / common_runtime / bfc_allocator.cc: 696] 1 Chunks der Größe 1280 in Höhe von 1,2 KiB I tensorflow / core / common_runtime / bfc_allocator.cc: 696] 5 Chunks der Größe 44288 in Höhe von 216,2 KiB I tensorflow / core / common_runtime / bfc_allocator.cc: 696] 5 Chunks der Größe 56064 in Höhe von 273,8KiB I tensorflow / core / common_runtime / bfc_allocator.cc: 696] 4 Chunks der Größe 154350080 mit insgesamt 588,80MiB I tensorflow / core / common_runtime / bfc_allocator.cc: 696] 3 Chunks der Größe 813400064 in Höhe von 2,27GiB I tensorflow / core / common_runtime / bfc_allocator.cc: 696] 1 Chunks der Größe 1612612352 in Höhe von 1,50GiB I tensorflow / core / common_runtime / bfc_allocator.cc: 700] Summe Summe von In-Gebrauch-Stücke: 4.35GiB I Tensorfluss / Kern / common_runtime / bfc_allocator.cc: 702] Statistik:
Grenze: 5484118016
InUse: 4670717952
MaxInUse: 5484118016
NumAllocs: 29
MaxAllocSize: 1612612352
W Tensorfluss / Kern / common_runtime / bfc_allocator.cc: 274] *********************
Schau dir das mal an
Achten Sie darauf, das Evaluierungs- und Trainings-Binary nicht gleichzeitig auszuführen GPU oder sonst könnte der Speicher knapp werden. Überlege, ob du die Auswertung auf einer separaten GPU, falls verfügbar oder Aussetzen des Trainings binär, während die Auswertung auf derselben GPU läuft.
Ich behebe dieses Problem, indem ich batch_size=52
reduziere
Um die Speicherbelegung zu reduzieren, muss batch_size reduziert werden.
Batch_size hängt von Ihrer GPU-Grafikkarte, VRAM-Größe, Cache-Speicher usw. ab.
Bitte bevorzugen Sie einen weiteren Stack Overflow Link
Wenn ich auf OOM auf GPU stoße, glaube ich, dass die Änderung von batch size
die richtige Option ist, um es zuerst zu versuchen.
Für verschiedene GPUs benötigen Sie möglicherweise eine andere Batchgröße basierend auf der GPU Erinnerung, die du hast.
In letzter Zeit habe ich mich mit der ähnlichen Art von Problem konfrontiert, die viel geändert wurde, um die verschiedenen Arten von Experimenten durchzuführen.
Hier ist der Link zur Frage (auch einige Tricks sind enthalten).
Wenn Sie jedoch die Größe des Stapels reduzieren, können Sie feststellen, dass Ihr Training langsamer wird. Wenn Sie also mehrere GPUs haben, können Sie sie verwenden. Um über Ihre GPU zu prüfen, können Sie auf das Terminal schreiben,
%Vor%Es zeigt Ihnen notwendige Informationen über Ihr GPU-Rack.
Tags und Links tensorflow out-of-memory gpu vram