第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

連接 CNN 以比較兩個圖像

連接 CNN 以比較兩個圖像

catspeake 2023-05-16 16:42:00
我正在訓(xùn)練 CNN 來比較兩個圖像。然后 CNN 可以說我放入 CNN 的新圖像是否相等。因此,我通過 cv2 連接圖像,這樣我就有了形狀為 (330,530,6)(rgb)的圖像,或者我會以灰度 (330,530,2) 來做。這對我來說很好,但我想知道如果我在展平兩個模型后連接兩個模型,CNN 是如何工作的。我正在使用 keras 順序模型。有沒有辦法在不改變一切的情況下連接這兩個模型?因為我在 fit 方法中給出了數(shù)據(jù),所以我不確定我是如何將這兩個數(shù)據(jù)交給每個模型的。這是我使用的模型:CNN = Sequential()CNN.add(layers.Conv2D(32,(3,3),activation='relu',kernel_regularizer=regularizers.l2(l2Reg),input_shape=(330,530,2)))CNN.add(layers.MaxPool2D(pool_size=(2, 2)))CNN.add(layers.Conv2D(32,(3,3),activation='relu',kernel_regularizer=regularizers.l2(l2Reg)))CNN.add(layers.MaxPool2D(pool_size=(3, 3)))CNN.add(layers.Conv2D(64,(3,3),activation='relu',kernel_regularizer=regularizers.l2(l2Reg)))CNN.add(layers.MaxPool2D(pool_size=(3, 3)))CNN.add(layers.Conv2D(64,(3,3),activation='relu',kernel_regularizer=regularizers.l2(l2Reg)))CNN.add(layers.MaxPool2D(pool_size=(3, 3)))CNN.add(layers.Flatten())CNN.add(layers.Dropout(0.5))CNN.add(layers.Dense(128,activation='relu',kernel_regularizer=regularizers.l2(l2Reg)))CNN.add(layers.Dense(2,activation='softmax'))CNN.summary()CNN.compile(optimizer=optimizers.RMSprop(lr=1e-4),loss='categorical_crossentropy',metrics=['accuracy'])history=CNN.fit(XTrain,YTrain,epochs=40,batch_size=32,validation_split=0.15)scores = CNN.evaluate(XTest,YTest,batch_size=32)print("Accuracy: %.2f%%" % (scores[1]*100))CNN.save("AnodenerkennungDreiV")
查看完整描述

1 回答

?
胡說叔叔

TA貢獻(xiàn)1804條經(jīng)驗 獲得超8個贊

您可以創(chuàng)建一個輸入列表,在您的情況下有 2 個項目,比方說'image1'和'image2'。然后,您可以為每個以Flatten層結(jié)尾的圖像創(chuàng)建一個卷積層和池化層的分支。


330x530 灰度圖像示例:


import numpy as np

from keras.utils import plot_model

from keras.models import Model

from keras.layers import Conv2D, MaxPool2D, Flatten, Input, concatenate, Dense


inputs = [Input(shape=(330,530,1), name='image1'), Input(shape=(330,530,1), name='image2')]


flattened_layers = []

for input in inputs:

    conv_layer = Conv2D(32,(3,3),activation='relu')(input)

    conv_layer = MaxPool2D(pool_size=(2,2))(conv_layer) 

    # note that previous layer is used as input for creating the next layer,

    # you'll need to do this for every layer.


    # add more layers here

    flattened_layers.append(Flatten()(conv_layer))


output = concatenate(flattened_layers, axis=0) #you have to check which axis you want to use here

#add more layers here

output = Dense(2,activation='softmax')(output)


model = Model(inputs=inputs, outputs=output)

model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy'])

plot_model(model, "C:/help_me_pls/example_model.png", show_shapes=True)

要將數(shù)據(jù)輸入此模型,您需要一個字典作為 X 值。X['image1']應(yīng)包含所有第一張圖片和X['image2']所有第二張圖片。您應(yīng)該仍然可以使用相同的 y 值。


下圖顯示了示例模型的架構(gòu):

http://img1.sycdn.imooc.com//646341f0000186df06580378.jpg

我希望我已經(jīng)正確理解你的問題,這就是你要找的。



查看完整回答
反對 回復(fù) 2023-05-16
  • 1 回答
  • 0 關(guān)注
  • 156 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號