def load_model()

in api/ImageSimilarity/deployment/app.py [0:0]


def load_model():
    '''
    this method will load the keras and KNN model (or Annoy) into memory
    '''
    global keras_model
    global knn_model
    global annoy_model
    global targets
    global img_width
    global img_height
    global graph
    global knn_file
    global targets_filepath
    global isKnn
    log('start of load_model function')
    K.clear_session()

    if isKnn:
        knn_model = joblib.load(knn_file)   
    else:
        length = 2048 
        annoy_model = AnnoyIndex(length)
        annoy_model.load(annoy_file)
        
    log('loaded knn')
    with graph.as_default():
        keras_model = ResNet50(input_shape=[img_width,img_height,3], 
                     weights='imagenet', 
                     include_top=False, 
                     pooling='avg')
    
    log('loaded keras model')
    
    targets = pickle.load(open(targets_filepath,'rb'))
    targets = np.array(targets)
    
    log('loaded models')