Skip to content

Instantly share code, notes, and snippets.

@nassarofficial
Created September 24, 2018 12:38
Show Gist options
  • Save nassarofficial/ff2ca99114b2a4a9e07d336fe64dce71 to your computer and use it in GitHub Desktop.
Save nassarofficial/ff2ca99114b2a4a9e07d336fe64dce71 to your computer and use it in GitHub Desktop.
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