-
-
Save nassarofficial/ff2ca99114b2a4a9e07d336fe64dce71 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
input_a = Input(shape=(224,224,3)) | |
input_b = Input(shape=(224,224,3)) | |
vec_a = Input(shape=(6,1)) | |
vec_b = Input(shape=(6,1)) | |
conv = Sequential([ | |
Conv2D(24, (7, 7), strides=(1,1), input_shape=(224,224,3)), | |
BatchNormalization(epsilon=1e-06, axis=1, momentum=0.9), | |
MaxPooling2D((3,3), strides=(2, 2)), | |
Activation('relu'), | |
Dropout(0.2), | |
ZeroPadding2D((2, 2)), | |
Conv2D(64, (5, 5), padding='same', strides=(1,1), kernel_initializer='glorot_uniform'), | |
BatchNormalization(epsilon=1e-06, axis=1, momentum=0.9), | |
MaxPooling2D((3,3), strides=(2, 2)), | |
Activation('relu'), | |
Dropout(0.2), | |
ZeroPadding2D((1, 1)), | |
Conv2D(96, (3,3), padding='same', strides=(1,1),kernel_initializer='glorot_uniform'), | |
BatchNormalization(epsilon=1e-06, axis=1, momentum=0.9), | |
MaxPool2D(pool_size=(2,2), strides=(2,2)), | |
Activation('relu'), | |
Dropout(0.2), | |
ZeroPadding2D((1, 1)), | |
Conv2D(96, (3,3), padding='same', strides=(1,1),kernel_initializer='glorot_uniform'), | |
BatchNormalization(epsilon=1e-06, axis=1, momentum=0.9), | |
Activation('relu'), | |
MaxPool2D(pool_size=(2,2), strides=(2,2)), | |
Dropout(0.2), | |
ZeroPadding2D((1, 1)), | |
Conv2D(64, (5, 5), padding='same', strides=(1,1), kernel_initializer='glorot_uniform'), | |
BatchNormalization(epsilon=1e-06, axis=1, momentum=0.9), | |
Activation('relu', name="activation_1_5"), | |
MaxPooling2D((3,3), strides=(2, 2)), | |
Dropout(0.2), | |
Dense(256, activation='relu'), | |
Flatten() | |
]) | |
conv1 = Sequential([ | |
Conv2D(24, (7, 7), strides=(1,1), input_shape=(224,224,3)), | |
BatchNormalization(epsilon=1e-06, axis=1, momentum=0.9), | |
MaxPooling2D((3,3), strides=(2, 2)), | |
Activation('relu', name="activation_2_1"), | |
Dropout(0.2), | |
ZeroPadding2D((2, 2)), | |
Conv2D(64, (5, 5), padding='same', strides=(1,1), kernel_initializer='glorot_uniform'), | |
BatchNormalization(epsilon=1e-06, axis=1, momentum=0.9), | |
MaxPooling2D((3,3), strides=(2, 2)), | |
Activation('relu', name="activation_2_2"), | |
Dropout(0.2), | |
ZeroPadding2D((1, 1)), | |
Conv2D(96, (3,3), padding='same', strides=(1,1),kernel_initializer='glorot_uniform'), | |
BatchNormalization(epsilon=1e-06, axis=1, momentum=0.9), | |
MaxPool2D(pool_size=(2,2), strides=(2,2)), | |
Activation('relu', name="activation_2_3"), | |
Dropout(0.2), | |
ZeroPadding2D((1, 1)), | |
Conv2D(96, (3,3), padding='same', strides=(1,1),kernel_initializer='glorot_uniform'), | |
BatchNormalization(epsilon=1e-06, axis=1, momentum=0.9), | |
Activation('relu', name="activation_2_4"), | |
MaxPool2D(pool_size=(2,2), strides=(2,2)), | |
Dropout(0.2), | |
ZeroPadding2D((1, 1)), | |
Conv2D(64, (5, 5), padding='same', strides=(1,1), kernel_initializer='glorot_uniform'), | |
BatchNormalization(epsilon=1e-06, axis=1, momentum=0.9), | |
Activation('relu', name="activation_2_5"), | |
MaxPooling2D((3,3), strides=(2, 2)), | |
Dropout(0.2), | |
Dense(256, activation='relu', name="activation_2_6"), | |
Flatten() | |
]) | |
conv_1d = Sequential([ | |
# Convolution1D(kernel_size=1, filters=2, activation='relu',input_shape=(6,1)), | |
# Dropout(0.2), | |
Dense(128, activation='relu', name="activation_b1_1"), | |
Dropout(0.2), | |
Flatten() | |
]) | |
conv_2d = Sequential([ | |
# Convolution1D(kernel_size=1, filters=2, activation='relu',input_shape=(6,1)), | |
# Dropout(0.2), | |
Dense(128, activation='relu', name="activation_b2_1"), | |
Dropout(0.2), | |
Flatten() | |
]) | |
net1 = conv(input_a) | |
net2 = conv(input_b) | |
f1 = conv_1d(vec_a) | |
f2 = conv_2d(vec_b) | |
mm1 = concatenate([net1, f1]) | |
mm2 = concatenate([net2, f2]) | |
mm = concatenate([mm1, mm2]) | |
mm = Dense(512)(mm) | |
mm = Activation('relu')(mm) | |
mm = Dropout(0.2)(mm) | |
mm = Dense(512)(mm) | |
mm = Activation('relu')(mm) | |
mm = Dropout(0.2)(mm) | |
mm = Dense(64)(mm) | |
mm = Activation('relu')(mm) | |
mm = Dropout(0.2)(mm) | |
prediction = Dense(1,activation='sigmoid')(mm) | |
model = Model(inputs=[input_a, input_b,vec_a,vec_b],outputs=prediction) | |
.... | |
grads = visualize_saliency(model, layer_idx, filter_indices=2, seed_input=[img1,img2,vec1,vec2]) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment