from keras.models import Model from keras.layers import Input, Dense from keras.optimizers import Adam from utils import * from sys import argv #------------------------------------------------------------------------------ def siamese_model(type): if type=='plate': input_shape = (image_size_h_p,image_size_w_p,nchannels) else: input_shape = (image_size_h_c,image_size_w_c,nchannels) left_input = Input(input_shape) right_input = Input(input_shape) convnet = small_vgg(input_shape) encoded_l = convnet(left_input) encoded_r = convnet(right_input) # Add the distance function to the network L1_distance = L1_layer([encoded_l, encoded_r]) prediction = Dense(2,activation='softmax')(L1_distance) optimizer = Adam(0.001, decay=2.5e-4) model = Model(inputs=[left_input,right_input],outputs=prediction) model.compile(loss="binary_crossentropy",optimizer=optimizer,metrics=['accuracy']) return model #------------------------------------------------------------------------------ if __name__ == '__main__': run(siamese_model(argv[1]), argv[1])