So erstellen Sie CaffeDB-Trainingsdaten für siamesische Netzwerke aus dem Bildverzeichnis

8

Ich brauche Hilfe, um eine CaffeDB für siamesische CNN aus einem einfachen Verzeichnis mit Bildern und Label-Text-Datei zu erstellen. Am besten wäre eine Python-Methode Das Problem besteht nicht darin, das Verzeichnis durchzugehen und Bilderpaare zu erstellen. Mein Problem besteht eher darin, aus diesen Paaren eine CaffeDB zu machen.
Bisher habe ich nur convert_imageset verwendet, um eine CaffeDB aus einem Bildverzeichnis zu erstellen.
Danke für die Hilfe!

    
Feuerteufel 20.01.2016, 15:25
quelle

1 Antwort

7

Warum erstellen Sie nicht einfach zwei Datensätze mit dem guten alten convert_imagest ?

%Vor%

Was den Verlust betrifft, müssen Sie label_a und label_b in ein same_not_same_label umwandeln, da jedes Beispiel eine Klassenbezeichnung hat. Ich schlage vor, Sie tun dies "on-the-fly" mit einer Python-Schicht. Fügen Sie in prototxt den Aufruf der Python-Ebene hinzu:

%Vor%

Erzeuge siamese.py (stelle sicher, dass es sich in deinem $PYTHONPATH befindet). In siamese.py sollten Sie die Layer-Klasse haben:

%Vor%

Stellen Sie sicher, dass Sie die Beispiele in den beiden Sets auf andere Weise mischen, damit Sie nicht-triviale Paare erhalten. Wenn Sie außerdem den ersten und zweiten Datensatz mit verschiedenen Beispielen erstellen, sehen Sie in jeder Epoche verschiedene Paare;)

Stellen Sie sicher, dass Sie das Netzwerk erstellen, um die Gewichtungen der duplizierten Ebenen zu teilen, siehe dieses Tutorial für mehr Informationen.

    
Shai 21.01.2016, 11:25
quelle
Django: Verwenden von Annotate, Count und Distinct in einem Queryset ___ answer34846882 ___

Sie haben Recht, dass Sie nur ein Bild sehen. Sie rufen die Bildzusammenfassung in jeder for-Schleife einmal auf, und jedes Mal, wenn Sie sie aufrufen, übergeben Sie ihr ein einzelnes Bild.

Was Sie tun könnten, um alle Bilder zu sehen, die Sie sehen möchten, wäre, diese Bilder zu einem einzigen Tensor zu kompilieren. Wenn wir uns auf TensorFlow API beziehen (Link ändert sich immer, so finden Sie den neuesten)

  

tf.image_summary (Tag, Tensor, max_images = 3, Sammlungen = Keine,   name = None)

Ab TF 1.0.0 ist dies:

  

tf.summary.image (Name, Tensor, max_outputs = 3, Sammlungen = keine)

Setzen Sie Ihren "multiplen Bildtensor" in, setzen Sie max_images auf die Anzahl der Bilder, die Sie haben, und Sie sollten in der Lage sein, alle Bilder in TensorBoard zu sehen.

Lassen Sie mich wissen, ob es noch Probleme gibt.

    
___ tag123tensorflow ___ TensorFlow ist eine Open-Source-Bibliothek für maschinelles Lernen und maschinelle Intelligenz. Es wurde von Google entwickelt und wurde im November 2015 Open Source. ___ answer41228796 ___
___ qstntxt ___

Problem - am TensorBoard

wird nur ein Bild angezeigt

Davon inspiriert Wie kann ich die Gewichte (Variablen ) in cnn in Tensorflow?

Hier ist Code:

%Vor%

Hier wird ausgegeben:

%Vor%

Sieht gut aus

  • 5 [image label] Paare wurden ausgeliefert
  • für den Fall, dass ich drucke "imss" aus, imss Ich kann 5 verschiedene Puffer mit jeweils eigenem png Bild sehen
  • op graph sieht in TB
  • gut aus

Allerdings nur ein Bild in TB. Ich vermute, ich habe etwas Wichtiges daran übersehen, wie TF funktioniert. Was verursacht was zur Ausführungszeit des Graphen.

Zweite Frage: Was muss ich tun, um das Ergebnis zu sehen, d. h. img2 = img + img in TB?

    
___