سلام
میخوام یک تصویر رو به همراه یک سری داده ی عددی رو بدم به یک شبکه
دو مدل ساختم یکی برای تصویر و یکی برای اعداد، آخر هر مدل flatten کردم و بعد concate کردمشون
1- آیا flatten کردن هر مدل و بعد concate کردنشون با هم کار درستی هست ؟
2- آیا ساختار رو درست چیدم ؟
3- چیزی مشابه maxpool تو شبکه ی conv برای شبکه ی dense هم داریم ؟ (میخوام تعداد ویژگی تو لایه ی m2_drop3 رو کم کنم، چون الان 131288 تا ویژگی میده به لایه ی بعدی)
from keras import regularizers
from keras.models import Sequential,Model
from keras.layers import Conv2D, MaxPooling2D,BatchNormalization,Conv3D
from keras.layers import Activation, Dropout, Flatten, Dense,TimeDistributed,Bidirectional,LSTM,Reshape
import keras
from keras.preprocessing.image import ImageDataGenerator, array_to_img, img_to_array, load_img
# Model
#img <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
input1 = keras.layers.Input(shape=(300, 800,1))
conv1= Conv2D(filters=4,kernel_size=(5,5),strides=(3,3), activation='relu')(input1)
max1= MaxPooling2D(2,1)(conv1)
drop1= Dropout(0.25)(max1)
conv2= Conv2D(filters=8,kernel_size=(5,5),strides=(3,3), activation='relu')(drop1)
max2= MaxPooling2D(2,1)(conv2)
drop2= Dropout(0.25)(max2)
flat1=Flatten()(drop2)
#>>>>>>>>>>>>>
# data
input2 = keras.layers.Input(shape=(16411,1))
m2_dense1= Dense(512,kernel_initializer='lecun_uniform', activation='relu')(input2) # kernel_regularizer=regularizers.l2(0.01)
m2_drop1= Dropout(0.5)(m2_dense1)
m2_dense2= Dense(256,kernel_initializer='lecun_uniform', activation='relu')(m2_drop1)
m2_drop2= Dropout(0.5)(m2_dense2)
m2_dense3= Dense(8,kernel_initializer='lecun_uniform', activation='relu')(m2_drop2)
m2_drop3= Dropout(0.5)(m2_dense3)
flat2=Flatten()(m2_drop3)
#############
flat=keras.layers.concatenate([flat1,flat2], axis=-1)
fc_dense1= Dense(256, activation='relu', kernel_regularizer = regularizers.l2(0.001))(flat)
fc_drop1= Dropout(0.96)(fc_dense1)
fc_dense2= Dense(8, activation='relu', kernel_regularizer = regularizers.l2(0.001))(fc_drop1)
fc_drop2= Dropout(0.7)(fc_dense2)
out=Dense(1,activation='sigmoid')(fc_drop2)
model = keras.models.Model(inputs=[input1,input2], outputs=out)
model.summary()