Nun stellt sich die Frage, wie mit so großen Bildgrößen umgegangen werden kann, wenn keine Downsampling-Rechte bestehen
Ich gehe davon aus, dass die von Ihnen mittlere Verkleinerung des Eingang Abwärtsabtastens bevor es in CNN vorbei. Convolutional Layer ermöglicht das Downsampling des Bildes innerhalb eines Netzwerks durch Auswahl eines großen Schritts, wodurch Ressourcen für die nächsten Layer gespart werden. Genau das muss es tun, sonst passt Ihr Modell nicht in die GPU.
1) Gibt es Techniken, um mit so großen Bildern umzugehen, die trainiert werden müssen?
Häufig skalieren Forschungen die Bilder auf eine vernünftige Größe. Wenn dies jedoch keine Option für Sie ist, müssen Sie Ihr CNN einschränken. Zusätzlich zum Downsampling in frühen Schichten würde ich empfehlen, die FC-Schicht (die normalerweise die meisten Parameter verwendet) zugunsten der Faltungsschicht zu entfernen . Außerdem müssen Sie Ihre Daten in jeder Epoche streamen, da sie nicht in Ihre GPU passen.
Beachten Sie, dass dies nicht die hohe Rechenlast in den frühen Schichten verhindert, da die Eingabe so groß ist: Faltung ist eine teure Operation, und die ersten Schichten führen in jedem Vorwärts- und Rückwärtsdurchlauf eine Menge davon aus. Kurz gesagt, das Training wird langsam sein.
2) Welche Chargengröße ist angemessen zu verwenden?
Hier ist ein weiteres Problem. Ein einzelnes Bild benötigt 2400x2400x3x4
(3 Kanäle und 4 Bytes pro Pixel) ~ 70 MB, sodass Sie sich kaum eine Stapelgröße 10 leisten können. Realistischer wäre 5. Beachten Sie, dass der größte Teil des Speichers von CNN-Parametern belegt wird. Ich denke, in diesem Fall ist es sinnvoll, die Größe zu reduzieren, indem Sie 16-Bit-Werte anstelle von 32-Bit verwenden. Auf diese Weise können Sie die Stapel verdoppeln.
3) Gibt es Vorkehrungen, die ich treffen oder die ich in Bezug auf Hardwareressourcen erhöhen oder verringern kann?
Ihr Engpass ist der GPU-Speicher. Wenn Sie sich eine andere GPU leisten können, holen Sie sich diese und teilen Sie das Netzwerk auf. Alles andere ist im Vergleich zum GPU-Speicher unbedeutend.