Ich habe versucht, fcn auf meine Daten in Caffe zu laufen. Ich konnte meine Bildsätze in lmdb
von convert_imageset
eingebaute Funktion Caffe konvertieren. Allerdings, wenn ich die net
trainieren wollte, gab es mir die folgende Fehlermeldung:Ist es möglich, die Anzahl der Bilder im Batch in convert_imageset.cpp zu reduzieren, um den Arbeitsspeicher der GPU zu reduzieren?
Check failed: error == cudaSuccess (2 vs. 0) out of memory
*** Check failure stack trace: ***
.....
Aborted (core dumped)
Ich ging durch viele Online-Ressourcen, um die Speicherfehler zu lösen, aber die meisten von ihnen darauf hindeutet, Chargengröße zu reduzieren. Sogar, ich habe die Größe der Bilder auf 256x256 reduziert. Ich konnte dieses Problem noch nicht angehen. Ich überprüft den Speicher der GPU mit diesem Befehl nvidia-smi
, und das Modell ist Nvidia GT 730
und der Speicher ist 1998 MiB
. Da die Losgröße in train_val.prototxt
1 ist, kann ich anythin in train_val.prototxt
nicht tun. Also meine Fragen sind:
- von im Terminal an Protokolldatei suchen, erkannte ich, dass, wenn
convert_imageset
die Daten in LMDB Umwandlung, es 1000 Bild in einer Gruppe stattfindet. Ist es möglich, dass ich diese Nummer in Zeile143
und151
vonconvert_imageset.cpp
zu einem kleineren (zum Beispiel 2; um zwei Bilder zu einer Zeit) zu ändern, caffe neu kompilieren, und konvertieren Sie dann Bilder in lmdb mithilfe von convert_imageset? Macht das Sinn? - Wenn die Antwort auf Frage 1 ja ist, wie kann ich caffe wieder kompilieren, sollte ich
build
Ordner entfernen und wieder caffe Installation von scratch tun? - Wie caffe die LMDB-Daten verarbeiten? Ist es so, als würde man einen Stapel dieser 1000 Bilder aufnehmen, die während der Ausführung von convert_imagenet angezeigt werden?
Ihre Hilfe wird sehr geschätzt. Dank ...
Vielen Dank für Ihre Informationen. Ja, es ist FCN semantische Segmentierung, die die Batch-Größe 1 ist. Gibt es eine Lösung für mein Problem? –
@ S.EB kaufen Sie eine neue GPU mit größerem Speicher. : | – Shai
danke für Ihre Hilfe –