2017-01-08 1 views
1

Ich bin verwirrt über die Änderung der Parameter für das Training eines net in Caffe basierend auf unseren eigenen Daten.Welche Teile eines Parameters von train_val.prototxt, solver.prototxt und deploy.prototxt sollten basierend auf unseren eigenen Daten geändert werden?

  • Welche Schichten Netz sollten wir beachten, mehr auf das Netz auf unsere eigenen Daten zu trainieren? Zum Beispiel die Anzahl der Ausgänge basierend auf der Nummer der Klassen.
  • Ich habe versucht, FCN32 für semantische Segmentierung zu trainieren. Ich habe die Anzahl der Ausgaben in Deconvolution layer (i.e.,upscore_sign) in die Anzahl der Klassen in meinen Daten geändert, aber es gibt einen Fehler.

    • Wir haben verschiedene Ausgänge in verschiedenen Faltungsschichten. Wie kann ich verschiedene Ausgänge voneinander erkennen und welche sollte ich ändern?
    • Die nächste Frage ist, was ist der Unterschied zwischen deploy.prototxt und train_val.prototxt.
    • Und was ist die Anwendung von deploy.prototxt? Sollte ich die Schichten in deploy.prototxt basierend auf dem train_val.prototxt ändern?
    • Ich schätze wirklich, wenn jemand weiß, bitte teilen Sie Ihr Wissen.

      Dank

    Antwort

    1

    Welche Schicht des Netzes sollten wir die Aufmerksamkeit

    Wenn ein Modell auf eine neue Aufgabe Feinabstimmung, mit wahrscheinlich unterschiedlichen Anzahl von Etiketten, ein Muss Änderung num_output des bezahlen letzte Schicht.
    Die letzte Schicht dient als Wahrscheinlichkeitsvorhersageebene und gibt einen Vektor von Wahrscheinlichkeiten für jede vorhergesagte Variable aus: Für die Bildklassifikation sagt das Netz einen Wahrscheinlichkeitsvektor pro Bild voraus; In FCN gibt das Netz prob Vektor vor Pixel aus. Der Wahrscheinlichkeitsvektor hat die Länge = Anzahl der Etiketten = num_output der letzten Schicht. Daher müssen Sie diesen Wert ändern, um die neue Anzahl von Etiketten in Ihrer neuen Aufgabe zu berücksichtigen.
    Siehe this post for more details.

    Was ist der Unterschied zwischen 'deploy.prototxt' und 'train_val.prototxt'

    Dieser Unterschied in this post erklärt.

    Sollte ich die Schichten in 'deploy.prototxt' basierend auf der 'train_val.prototxt' ändern?

    Ja!

    +1

    Vielen Dank :) Ich bin dein großer Fan ..... immer uns hier helfen ... danke nochmal –

    Verwandte Themen