Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def get_siamese_model(input_shape):
- left_input = Input(shape=input_shape)
- right_input = Input(shape=input_shape)
- model = Sequential()
- model.add(Embedding(input_dim=max_token, output_dim=512, input_shape=input_shape))
- model.add(Conv2D(64, (10,10), name="conv1", activation='relu',
- kernel_initializer=initialize_weights, kernel_regularizer=l2(2e-4)))
- model.add(MaxPooling2D())
- model.add(Conv2D(128, (7,7), name="conv2", activation='relu', kernel_initializer=initialize_weights,
- bias_initializer=initialize_bias, kernel_regularizer=l2(2e-4)))
- model.add(MaxPooling2D())
- model.add(Conv2D(128, (4,4), name="conv3", activation='relu', kernel_initializer=initialize_weights,
- bias_initializer=initialize_bias, kernel_regularizer=l2(2e-4)))
- model.add(Flatten())
- model.add(Dense(4096, activation='sigmoid',
- kernel_regularizer=l2(1e-3),
- kernel_initializer=initialize_weights,bias_initializer=initialize_bias))
- encoded_l = model(left_input)
- encoded_r = model(right_input)
- L1_layer = Lambda(lambda tensors:K.abs(tensors[0] - tensors[1]))
- L1_distance = L1_layer([encoded_l, encoded_r])
- prediction = Dense(1,activation='sigmoid',bias_initializer=initialize_bias)(L1_distance)
- siamese_net = Model(inputs=[left_input,right_input],outputs=prediction)
- return siamese_net
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement