Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import torch | |
| import numpy as np | |
| import h5py | |
| import faiss | |
| from PIL import Image | |
| import io | |
| import pickle | |
| def searchEmbeddings(id): | |
| # variable and index initialization | |
| dim = 768 | |
| count = 0 | |
| num_neighbors = 10 | |
| image_index = faiss.IndexFlatIP(dim) | |
| # get index | |
| image_index = faiss.read_index("image_index.index") | |
| # search for query | |
| query = id_emb_dict[id] | |
| query = query.astype(np.float32) | |
| D, I = image_index.search(query, num_neighbors) | |
| id_list = [] | |
| i = 1 | |
| for indx in I[0]: | |
| id = indx_to_id_dict[indx] | |
| id_list.append(id) | |
| return id_list | |
| with gr.Blocks() as demo: | |
| with open("dataset_processid_list.pickle", "rb") as f: | |
| dataset_processid_list = pickle.load(f) | |
| with open("dataset_image_mask.pickle", "rb") as f: | |
| dataset_image_mask = pickle.load(f) | |
| with open("processid_to_index.pickle", "rb") as f: | |
| processid_to_index = pickle.load(f) | |
| with open("big_id_to_emb_dict.pickle", "rb") as f: | |
| id_emb_dict = pickle.load(f) | |
| with open("big_indx_to_id_dict.pickle", "rb") as f: | |
| indx_to_id_dict = pickle.load(f) | |
| with gr.Column(): | |
| process_id = gr.Textbox(label="ID:", info="Enter a sample ID to search for") | |
| process_id_list = gr.Textbox(label="Closest 10 matches:" ) | |
| search_btn = gr.Button("Search") | |
| search_btn.click(fn=searchEmbeddings, inputs=process_id, | |
| outputs=[process_id_list]) | |
| # ARONZ671-20 | |
| demo.launch() | |