Ich teste ein FCN-VGG16-Netzwerk in Caffe. Anstatt die Eingabebilder auf eine feste Größe zu skalieren, formiere ich das Netzwerk jedes Mal um die Bildgröße. Ich habe das sowohl in Matcaffe als auch in Pycaffe versucht. In beiden Fällen scheint es, dass es für kleine Bilder (z. B. 500 x 500) ausgeführt werden kann. Wenn ich jedoch ein größeres Bild habe (z. B. 1920 x 1080), erhalte ich den Fehler "Überprüfung fehlgeschlagen: Fehler == cudaSuccess (2 vs. 0) nicht genügend Speicher". Ich betreibe dies auf einer Quadro M6000 GPU mit 12 GB Speicher. Jede Hilfe/Beratung wäre willkommen.Testen von FCN auf großen Bildgrößen
Antwort
Ich weiß, es ist offensichtlich aus der Nachricht, aber Sie tun müssen die Eingabegröße reduzieren: die GPU hat nicht genug On-Board-Speicher für alles, was Sie fütterte es. Können Sie Ihre Batchgröße reduzieren? Wenn nicht, brauchen Sie wirklich brauchen die gesamten 2M Pixel? Die meisten Modelle eignen sich gut für beschnittene oder reduzierte Bilder. Tun Sie dies als Teil der Eingabeverarbeitung (auf der CPU) und parametrisieren Sie es für einen beliebigen Sinuseingang.
Das Ändern der Größe des Netzwerks ist im Speicher teuer, besonders wenn Sie die Größe alle Layer ändern, indem Sie mit den Eingabeabmessungen skalieren. In dem Fall, dass Sie gaben, wird dies Ihren Speicherbedarf um etwa das 8-fache erhöhen.
Als eine Kontrolle über die Größe, die Sie haben können, beobachten Sie die Speicherzahlen, wie Sie das Netzwerk initialisieren; Ich glaube, dass Caffe Speicheranforderungen nach Layer meldet.
- 1. Docker erstellt riesige Bildgrößen
- 2. Fully Convolution Net (FCN) auf Tensorflow
- 3. Shift und Stich in FCN
- 4. Verschiedene Bildgrößen in Wordpress
- 5. Berechnung Bildgrößen auf Last in Vue immer wiederkehr Null
- 6. Bildgrößen in iOS
- 7. iOS 9 Start Bildgrößen?
- 8. Webcam unterstützt Bildgrößen
- 9. Testen der Speichereffizienz Vergleichen von Datenstrukturen in einem großen Datensatz
- 10. Algorithmus zum Testen der Ungleichheit von geordneten großen Sammlungen
- 11. Herunterladen von benutzerdefinierten Bildgrößen mit iOS
- 12. Bildgrößen für Android
- 13. GridLayoutManager Gleiche Bildgrößen
- 14. Anpassen von Bildgrößen und Padding im Bootstrap
- 15. Verwendung von Bildelementen bei bekannten Bildgrößen
- 16. Magento - Fishpig Wordpress - Empfohlene Bildgrößen
- 17. Bildgrößen proportional mit CSS ändern?
- 18. PHP Wordpress dynamische benutzerdefinierte Bildgrößen
- 19. Implementieren von großen Systemänderungen
- 20. Ist es möglich, in Keras auf mehreren Bildgrößen zu trainieren?
- 21. Mehrere Bildgrößen auf einmal in Codeigniter, funktioniert nicht
- 22. Wie startet man das automatisierte Testen einer großen Anwendung?
- 23. Verwenden von Rpart-Paket auf großen Dataset
- 24. Bestimmung Bildgrößen für mehrere Android-Bildschirmgrößen/Dichten
- 25. verschiedenen Bildgrößen bewegen divs nach unten asymmetrisch
- 26. So erhalten Sie die erforderlichen Bildgrößen von Adwords Api
- 27. Erhalte alle Bildgrößen von flickr JSON rss feed
- 28. Wie kann ich Bildgrößen über Javascript hochladen?
- 29. Wie man Bildgrößen für NextGen Maurerarbeitgalerie einstellt
- 30. Wie tune ein FCN-32s für interaktives Objekt feinsegmentierten
Vielen Dank für die schnelle Antwort. Um Ihre Fragen zu beantworten, verwende ich eine Batch-Größe von 1, und ich umgestalte das Netzwerk mit dem folgenden Befehl: net.blobs ['data']. Reshape (1, * im.shape). Ich habe tatsächlich versucht, die Bilder auf eine feste Größe zu skalieren und dann die Tests durchzuführen. Ich bin jedoch nicht mit den Ergebnissen zufrieden, und ich frage mich, ob es mit der Größenänderung zu tun hat. Da ich eine große Auswahl an Eingabegrößen habe, befürchte ich, dass die Größenanpassung auf eine feste Größe die Leistung beeinträchtigt (z. B. wird bei manchen Bildern das Seitenverhältnis erheblich geändert). – user6137678
Da ich eine große Auswahl an Eingabegrößen habe, sollte ich vielleicht nicht alle Bilder auf eine feste Größe skalieren. Stattdessen könnte ich jedes Bild auf eine kleinere Größe verkleinern, aber das Seitenverhältnis beibehalten. In diesem Fall hätten die Eingabebilder jedoch immer noch eine variable Größe, sodass ich das Netzwerk immer noch neu gestalten müsste. – user6137678
Rechts. Sie können das Netzwerk umgestalten, solange Sie den Footprint innerhalb eines "vernünftigen" Bereichs halten - mit "angemessen", bestimmt durch Ihre RAM-Größe. – Prune