Ich habe 2 verschiedene Modelle, sagen wir NM1 und NM2.Caffe, Ausgänge von 2 Modellen verbinden
Also, was ich suche ist etwas, das wie im folgenden Beispiel funktioniert.
Nehmen wir an, wir haben ein Bild von einem Hund.
NM1 sagt voraus, dass es eine Katze auf dem Bild mit einer Wahrscheinlichkeit von 0,52 ist und dass es ein Hund mit einer Wahrscheinlichkeit von 0,48 ist. NM2 sagt voraus, dass es ein Hund mit einer Wahrscheinlichkeit von 0,6 ist und dass es eine Katze mit einer Wahrscheinlichkeit von 0,4 ist.
NM1 - wird vorhersagen falsch NM2 - wird korrekt vorherzusagen
NM1 + NM2 - Verbindung korrekt vorhersagen (weil 0,48 + 0,6> 0,52 + 0,4)
So endet jedes Modell mit InnerProducts (nach Softmax), die mir 2 Wahrscheinlichkeitsvektoren geben.
Nächster Schritt, ich habe diese 2 Vektoren und ich möchte sie hinzufügen. Hier verwende ich Eltwise-Layer.
layer {
name: "eltwise-sum"
type: "Eltwise"
bottom: "fc8"
bottom: "fc8N"
top: "out"
eltwise_param { operation: SUM }
}
Vor dem Beitritt NM1 hatte Genauigkeit ~ 70% und NM2 ~ 10%.
Nach Verbindung Genauigkeit kann nicht einmal 1% erreichen.
Also meine Schlussfolgerung ist, dass ich etwas falsch verstehe und ich wäre dankbar, wenn mir jemand erklären könnte, wo ich falsch liege.
PS. Ich habe Shuffle beim Erstellen von lmdb deaktiviert.
UPDATE
layer {
name: "eltwise-sum"
type: "Eltwise"
bottom: "fc8L"
bottom: "fc8NL"
top: "out"
eltwise_param {
operation: SUM
coeff: 0.5
coeff: 0.5
}
}
#accur for PI alone
layer {
name: "accuracyPINorm"
type: "Accuracy"
bottom: "fc8L"
bottom: "label"
top: "accuracyPiNorm"
include {
phase: TEST
}
}
#accur for norm images alone
layer {
name: "accuracyIMGNorm"
type: "Accuracy"
bottom: "fc8NL"
bottom: "labelN"
top: "accuracyIMGNorm"
include {
phase: TEST
}
}
#accur for them together
layer {
name: "accuracy"
type: "Accuracy"
bottom: "out"
bottom: "label"
top: "accuracy"
include {
phase: TEST
}
}
[** Schalten Sie nicht schlurfenden OFF **] (http://stackoverflow.com/a/37659171/1714410) haben. – Shai
@Shai Ich verstehe, dass es ein Problem ist, aber Abmischen war nur ein Weg, um sicher zu sein, dass ich die gleichen Bilder von beiden Eingaben bekomme. Mit Shuffling könnte es verschiedene Bilder auf jedem Eingang zurückgeben. –
shuffle die Zeilen der Textdatei für die Generierung der LMBs – Shai