2017-09-28 15 views
0

単純な分類器の結果と畳み込みネットワークの結果を混合して、より洗練された分類子を取得してテストしたい。畳み込みレイヤーと密なレイヤーの間に新しい情報を追加

今、私は私が最初Dense層の結果に他の分類器から得られたクラスを追加したいが、それを送信する方法を理解していないネット

base_model = InceptionV3(include_top=False, weights='imagenet', 
    input_shape=(200,200,3)) 
    x = base_model.output 
    x = GlobalAveragePooling2D()(x) 
    x = Dense(1024, activation = 'relu')(x) 
    predictions = Dense(NUM_CLASSES, activation='softmax')(x) 
    model = Model(inputs=base_model.input, outputs=predictions) 

Inceptionv3ためkeras例を使用していますモデル化する。

ありがとうございました。

答えて

0

2つのブランチを持つモデルが必要です。

input1 = Input(yourInputShape) 

密あなたは結果を変更するまで同じラインに従ってください:

otherOut = other_model(input1) 
otherOut = MoreLayers(....)(otherOut) 

今、あなたはそれらを合計することができ、次のいずれか

v3out = base_model(input1) 
v3out = GlobalAveragePooling2D()(v3out) 
v3out = Dense(1024, activation = 'relu')(v3out) 

は、他の分類器のための同様の構造を持っていますそれらが同じ形をしているか、それらを連結している(もう一方の端に1を追加)

#sum 
joined = Add()([v3Out,otherOut]) 

#or concatenate 
joined = Concatenate()([v3Out,otherOut]) 

通常通りにモデルを完成してください:

predictions = Dense(NUM_CLASSES, activation='softmax')(joined) 
model = Model(inputs=input, outputs=predictions) 
関連する問題