亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

合并不同的 CNN 模型

合并不同的 CNN 模型

一只甜甜圈 2023-07-05 16:34:45
我們是數據科學的新手,我們正在嘗試合并兩種不同的 CNN 模型(一個有 2 個類,另一個有 3 個類)。型號代碼為:性別模型    #initialize the model along with the input shape    model = Sequential()    inputShape = (height, width, depth)    chanDim = -1       if K.image_data_format() == 'channels_first':        inputShape = (depth, height, width)        chanDim = 1           # CONV -> RELU -> MAXPOOL    model.add(Convolution2D(64, (3,3), padding='same', input_shape=inputShape))    model.add(Activation('relu'))    model.add(BatchNormalization(axis=chanDim))    model.add(MaxPooling2D(pool_size=(3,3)))    model.add(Dropout(0.25))       # (CONV -> RELU)*2 -> AVGPOOL    model.add(Convolution2D(128, (3,3), padding='same'))    model.add(Activation('relu'))    model.add(BatchNormalization(axis=chanDim))    model.add(Convolution2D(128, (3,3), padding='same'))    model.add(Activation('relu'))    model.add(BatchNormalization(axis=chanDim))    model.add(AveragePooling2D(pool_size=(3,3) ))    model.add(Dropout(0.25))       # CONV -> RELU -> MAXPOOL    model.add(Convolution2D(256, (3,3), padding='same'))    model.add(Activation('relu'))    model.add(BatchNormalization(axis=chanDim))    model.add(MaxPooling2D(pool_size=(3,3)))    model.add(Dropout(0.25))       # CONV -> RELU -> AVGPOOL    model.add(Convolution2D(512, (3,3), padding='same'))    model.add(Activation('relu'))    model.add(BatchNormalization(axis=chanDim))    model.add(AveragePooling2D(pool_size=(3,3)))    model.add(Dropout(0.25))       # DENSE -> RELU    model.add(Flatten())    model.add(Dense(1024))    model.add(Activation('relu'))    model.add(BatchNormalization())    model.add(Dropout(0.25))       # DENSE -> RELU    model.add(Dense(512))    model.add(Activation('relu'))    model.add(BatchNormalization())    model.add(Dropout(0.25))   我們嘗試使用 concatenate keras 函數合并模型,但未能理解如何合并具有不同數量類的兩個模型。我們的目標是:給定一張照片,我們希望同時預測性別和種族感謝您的關注。
查看完整描述

1 回答

?
一只名叫tom的貓

TA貢獻1906條經驗 獲得超3個贊

我們將第一個模型model_1和第二個模型稱為model_2。您需要做的第一步是將模型的輸入更改為一些常見的輸入。


inputs = keras.layers.Input(shape=inputShape)


outputs_1 = model_1(inputs)

outputs_2 = model_2(inputs

接下來使用這些輸入和輸出創建一個模型


new_model = keras.Model(inputs=inputs, outputs=[outputs_1, outputs_2])


現在該模型有一個輸入和兩個輸出。您可以從單個輸入獲得兩個預測。


修復名稱沖突

如果模型具有相同的名稱和/或模型的圖層具有相同名稱的圖層,請使用以下代碼重命名模型和模型的圖層。


model_1._name = "model_1_"+model_1.name

model_2._name = "model_2_"+model_2.name


for layer in model_1.layers:

    layer._name = "model_1_layer_"+layer.name


for layer in model_2.layers:

    layer._name = "model_2_layer_"+layer.name


查看完整回答
反對 回復 2023-07-05
  • 1 回答
  • 0 關注
  • 161 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號