2つのモデルがありますが、NM1とNM2としましょう。Caffe、2つのモデルの出力を結合する
私が探しているのは、以下の例のようなものです。
私たちは犬の絵を持っているとしましょう。
NM1は、確率0.52の猫であり、確率0.48の犬であると予測しています。 NM2は、それが確率0.6の犬であり、確率0.4の猫であると予測しています。
NM1 - 間違った NM2を予測する - 正しく
NM1 + NM2を予測する - したがって、各モデルは内積で終了
(0.48 + 0.6> 0.52 + 0.4ために)接続した後に(正しく予測しますソフトマックス)、2つの確率ベクトルが得られます。
次のステップでは、これらの2つのベクトルがあり、それらを追加したいと考えています。ここではEltwiseレイヤーを使用します。
layer {
name: "eltwise-sum"
type: "Eltwise"
bottom: "fc8"
bottom: "fc8N"
top: "out"
eltwise_param { operation: SUM }
}
NM1に参加する前に、精度は約70%、NM2~10%でした。
接合後も精度は1%に達することはありません。
私の結論は、私が間違っていることを理解し、誰かが私が間違っているところを私に説明することができればと感謝しています。
PS。 lmdbを作成するときにシャッフルをオフにしました。
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
}
}
[** DO NOT TURN SHUFFLING OFF **](http://stackoverflow.com/a/37659171/1714410)のようなものが必要です。 – Shai
@Shai問題だと理解していますが、シャッフルをオフにすることは、両方の入力から同じ画像が得られるかどうかを確認する1つの方法にすぎません。 シャッフルすると、入力ごとに異なる画像が返される可能性があります。 –
lmdbsを生成するために使用されるテキストファイルの行をシャッフルします。 – Shai