2016-02-28 9 views
6

Caffe unterstützt LMDB-Datenschicht und ImageDataLayer. Erstellen LMDB-Datenbank aus einigen Datensätzen benötigen einige Zeit und viel Platz. Im Gegensatz dazu verwendet ImageDataLayer nur eine TXT-Datei, die sehr praktisch ist. Meine Frage ist, gibt es große Geschwindigkeitsdifferenz zwischen diesen beiden Arten von Schichten? Vielen Dank!Die Geschwindigkeit zwischen ImageDataLayer und LMDB-Datenschicht

+0

Bitte denken Sie daran, Ihre bevorzugte Antwort zu akzeptieren, damit StackOverflow die Frage entsprechend archivieren kann. – Prune

Antwort

5

LMDB ist für schnelleres Abrufen von Daten aus einem gegebenen key value entwickelt. Außerdem werden die Daten in einem unkomprimierten Format gespeichert, so dass die Maschine die Daten einfach lesen und zur Verarbeitung direkt an die GPU weitergeben kann. In ImageDataLayer müssen wir die Bilddetails aus der Textdatei lesen und OpenCV verwenden, um das Bild in den Speicher zu lesen. Dieses Dekomprimieren des Bildes ist rechenintensiv.

Aber die beste Leistung ist möglicherweise nicht immer für die LMDB-Schicht, sie hängt stark von der Konfiguration der Maschine ab. Betrachten Sie ein Beispiel für eine Stapelgröße von 256 Bildern und die Bilder der Größe 227 x 227 x 3. Bedenken Sie auch, dass Sie eine sehr gute GPU und eine High-End-i8-Prozessor-Maschine verwenden. Hier kann ein einzelnes Bild im LMDB-Format 151 KB belegen. Eine ganze Charge kann 37 MB belegen. Wenn die GPU 10 Batches pro Sekunde ausführen kann, sollte die Festplatte eine Geschwindigkeit von 370 MB/s haben. Wenn Sie eine normale SATA- oder externe Festplatte verwenden, werden beim Lesen solcher großer Datenmengen aufgrund der Grenzen der Festplatte Engpässe auftreten.

Wenn caffe Daten in der erforderlichen Geschwindigkeit nicht abrufen konnte, verlangsamt der Engpass den gesamten Trainingsprozess noch schlimmer. Wenn Sie gleichzeitig 256 Bilder lesen und die Multicore-Version von OpenCV verwenden, kann das Vorablesen von Daten effektiver gehandhabt werden als das Lesen einer LMDB.

Der obige Fall tritt nicht auf, wenn Sie die LMDB-Daten auf einer SSD gespeichert haben!

0

Ja, der Geschwindigkeitsunterschied ist in der Tat groß. LMDB ist für die Hochgeschwindigkeitsverarbeitung optimiert.

+0

Keine Benchmarks ... –

Verwandte Themen