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!
Warum erstellen Sie nicht einfach zwei Datensätze mit dem guten alten convert_imagest
?
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:
Erzeuge siamese.py
(stelle sicher, dass es sich in deinem $PYTHONPATH
befindet). In siamese.py
sollten Sie die Layer-Klasse haben:
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.
Tags und Links neural-network deep-learning conv-neural-network caffe training-data
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.
Ab Version 0.12 wurde %code% durch %code%
Problem - am TensorBoard
wird nur ein Bild angezeigtDavon inspiriert Wie kann ich die Gewichte (Variablen ) in cnn in Tensorflow?
Hier ist Code:
%Vor%Hier wird ausgegeben:
%Vor%Sieht 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?