diff --git a/.gitattributes b/.gitattributes index a6344aac8c09253b3b630fb776ae94478aa0275b..72279b3eaa9d6f2f18fa3160fc8fe035257abdd2 100644 --- a/.gitattributes +++ b/.gitattributes @@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text *.zip filter=lfs diff=lfs merge=lfs -text *.zst filter=lfs diff=lfs merge=lfs -text *tfevents* filter=lfs diff=lfs merge=lfs -text +images/intro.jpg filter=lfs diff=lfs merge=lfs -text diff --git a/README.md b/README.md index 0b7e01f5fef742636871abdad24818631edced2f..62faa56023f304c020874b21b0e962c29a89b80f 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ --- -title: HumanStudy Dogs -emoji: 🏢 -colorFrom: pink -colorTo: yellow +title: PCNN-StanfordDogs-HumanStudy +emoji: 🐕 +colorFrom: green +colorTo: red sdk: gradio -sdk_version: 4.31.1 +sdk_version: 4.29.0 app_file: app.py pinned: false --- diff --git a/app.py b/app.py new file mode 100644 index 0000000000000000000000000000000000000000..1c9afbc39b421c8e172b368b0d2729af4ab53dde --- /dev/null +++ b/app.py @@ -0,0 +1,426 @@ +import json +import gradio as gr +import numpy as np +import time +import csv +import json +import os +import random +import string +import sys +import time +import gradio as gr +import numpy as np +import pandas as pd +from huggingface_hub import ( + CommitScheduler, + HfApi, + InferenceClient, + login, + snapshot_download, + hf_hub_download, +) +from PIL import Image +from utils import string_to_image +import matplotlib.backends.backend_agg as agg +import math +from pathlib import Path +import zipfile +import gdown + +random.seed(int(time.time())) +np.random.seed(int(time.time())) +csv.field_size_limit(sys.maxsize) + + +############################################################################################################### +session_token = os.environ.get("SessionToken") +login(token=session_token, add_to_git_credential=True) + +NUMBER_OF_IMAGES = 30 +intro_screen = Image.open("./images/intro.jpg") + + +meta_top1 = json.load(open("./dogs/top1/metadata.json")) +meta_topk = json.load(open("./dogs/topk/metadata.json")) + +all_data = {} +all_data["top1"] = meta_top1 +all_data["topk"] = meta_topk + + +# for data in all_data["top1"] and all_data["topk"] add a key to show which type they are +for k in all_data["top1"].keys(): + all_data["top1"][k]["type"] = "top1" + +for k in all_data["topk"].keys(): + all_data["topk"][k]["type"] = "topk" + + +REPO_URL = "xairesearch2023-advnet/HumanStudyData-Dogs" +JSON_DATASET_DIR = Path("responses") + +################################################################################################################ + +scheduler = CommitScheduler( + repo_id=REPO_URL, + repo_type="dataset", + folder_path=JSON_DATASET_DIR, + path_in_repo="./data", + every=1, + private=True, +) + + +if not JSON_DATASET_DIR.exists(): + JSON_DATASET_DIR.mkdir() + + +def generate_data(type_of_nns, seed): + global NUMBER_OF_IMAGES + random.seed(int(seed)) # Set the random seed + keys = list(all_data[type_of_nns].keys()) + sample_data = random.sample(keys, NUMBER_OF_IMAGES) + + data = [] + for k in sample_data: + new_datapoint = all_data[type_of_nns][k] + new_datapoint["image-path"] = f"./dogs/{type_of_nns}/{k}.jpeg" + data.append(new_datapoint) + + return data + + +def load_sample(data, current_index): + current_datapoint = data[current_index] + + image_path = current_datapoint["image-path"] + image = Image.open(image_path) + top_1 = current_datapoint["top1-label"] + top_1_score = current_datapoint["top1-score"] + + q_template = ( + "
Sam guessed the Input image is " + "{} " + "with {}% " + "confidence. Is this dog a {}?" + "
" + ) + + q_template = ( + "
Sam guessed the Input image is " + "{} " + "with {}% " + "confidence.
Is this dog a {}?" + "
" + ) + + top_1_score = top_1_score * 100 + top_1_score = round(top_1_score, 2) + + rounded_up_score = math.ceil(top_1_score) + rounded_up_score = int(rounded_up_score) + question = q_template.format( + top_1.replace("_", " "), str(rounded_up_score), top_1.replace("_", " ") + ) + + accept_reject = current_datapoint["Accept/Reject"] + + return image, top_1, rounded_up_score, question, accept_reject + + +def preprocessing(data, type_of_nns, current_index, history, username, seed): + print("preprocessing") + data = generate_data(type_of_nns, seed) # Pass the seed here + print("data generated") + + # set random seed to time + random.seed(int(time.time())) + # append a random text to the username + random_text = "".join( + random.choice(string.ascii_lowercase + string.digits) for _ in range(8) + ) + + if username == "": + username = "username" + + username = f"{username}-{random_text}" + + current_index = 0 + print("loading sample ....") + qimage, top_1, top_1_score, question, accept_reject = load_sample( + data, current_index + ) + + return ( + qimage, + top_1, + top_1_score, + question, + accept_reject, + current_index, + history, + data, + username, + ) + + +def update_app(decision, data, current_index, history, username): + global NUMBER_OF_IMAGES + if current_index == -1: + gr.Error("Please Enter your username and load samples") + + fake_plot = string_to_image("Please Enter your username and load samples") + canvas = agg.FigureCanvasAgg(fake_plot) + canvas.draw() + empty_image = Image.frombytes( + "RGBA", canvas.get_width_height(), canvas.tostring_argb() + ) + + return ( + empty_image, + "", + "", + "", + "", + current_index, + history, + data, + 0, + gr.update(interactive=False), + gr.update(interactive=False), + "", + ) + + # Done, let's save and upload + if current_index == NUMBER_OF_IMAGES - 1: + time_stamp = int(time.time()) + + # Add decision to the history + current_dicitonary = data[current_index].copy() + current_dicitonary["user_decision"] = decision + current_dicitonary["user_id"] = username + accept_reject_string = "Accept" if decision == "YES" else "Reject" + current_dicitonary["is_user_correct"] = ( + current_dicitonary["Accept/Reject"] == accept_reject_string + ) + history.append(current_dicitonary) + + # convert to percentage + final_decision_data = { + "user_id": username, + "time": time_stamp, + "history": history, + } + + # upload the decision to the server + temp_filename = f"./responses/results_{username}.json" + # convert decision_dict to json and save it on the disk + with open(temp_filename, "w") as f: + json.dump(final_decision_data, f) + + fake_plot = string_to_image("Thank you for your time!") + canvas = agg.FigureCanvasAgg(fake_plot) + canvas.draw() + empty_image = Image.frombytes( + "RGBA", canvas.get_width_height(), canvas.tostring_argb() + ) + + # TODO, Call the accuracy and show it to the user + # calcualte the mean of is_user_correct + all_is_user_correct = [d["is_user_correct"] for d in history] + accuracy = np.mean(all_is_user_correct) * 100 + accuracy = round(accuracy, 2) + + return ( + empty_image, + "", + "", + "", + "", + current_index, + history, + data, + current_index + 1, + gr.update(interactive=False), + gr.update(interactive=False), + f"User Accuracy: {accuracy}", + ) + + if current_index >= 0 and current_index < NUMBER_OF_IMAGES - 1: + current_dicitonary = data[current_index].copy() + current_dicitonary["user_decision"] = decision + current_dicitonary["user_id"] = username + accept_reject_string = True if decision == "YES" else False + current_dicitonary["is_user_correct"] = ( + current_dicitonary["Accept/Reject"] == accept_reject_string + ) + + print(f" accept/reject : {current_dicitonary['Accept/Reject'] }") + print( + f" accept/reject status: {current_dicitonary['Accept/Reject'] == accept_reject_string}" + ) + + history.append(current_dicitonary) + + current_index += 1 + qimage, top_1, top_1_score, question, accept_reject = load_sample( + data, current_index + ) + + return ( + qimage, + top_1, + top_1_score, + question, + accept_reject, + current_index, + history, + data, + current_index, + gr.update(interactive=True), + gr.update(interactive=True), + "", + ) + + +def disable_component(): + return gr.update(interactive=False) + + +def enable_component(): + return gr.update(interactive=True) + + +def hide_component(): + return gr.update(visible=False) + + +with gr.Blocks(theme=gr.themes.Soft()) as demo: + data_state = gr.State({}) + current_index = gr.State(-1) + history = gr.State([]) + + gr.Markdown("# Advising Networks") + gr.Markdown("## Accept/Reject AI predicted label using Explanations") + + with gr.Column(): + with gr.Row(): + username_textbox = gr.Textbox(label="Username", value=f"username") + labeled_images_textbox = gr.Textbox(label="Labeled Images", value="0") + total_images_textbox = gr.Textbox( + label="Total Images", value=NUMBER_OF_IMAGES + ) + type_of_nns_dropdown = gr.Dropdown( + label="Type of NNs", + choices=["top1", "topk"], + value="top1", + ) + random_seed_textbox = gr.Number(label="Random Seed", value="0") + + prepare_btn = gr.Button(value="Start The Experiment") + + with gr.Column(): + with gr.Row(): + question_textbox = gr.HTML("") + # question_textbox = gr.Markdown("") + + with gr.Column(elem_id="parent_row"): + query_image = gr.Image( + type="pil", label="Query", show_label=False, value="./images/intro.jpg" + ) + + with gr.Row(): + accept_btn = gr.Button(value="YES", interactive=False) + reject_btn = gr.Button(value="NO", interactive=False) + + with gr.Column(elem_id="parent_row"): + top_1_textbox = gr.Textbox(label="Top 1", value="", visible=False) + top_1_score_textbox = gr.Textbox( + label="Top 1 Score", value="", visible=False + ) + accept_reject_textbox = gr.Textbox( + label="Accept/Reject", value="", visible=False + ) + + with gr.Column(): + with gr.Row(): + final_results = gr.HTML("") + + # data, type_of_nns, current_index, history + prepare_btn.click( + preprocessing, + inputs=[ + data_state, + type_of_nns_dropdown, + current_index, + history, + username_textbox, + random_seed_textbox, + ], + outputs=[ + query_image, + top_1_textbox, + top_1_score_textbox, + question_textbox, + accept_reject_textbox, + current_index, + history, + data_state, + username_textbox, + ], + ).then(fn=disable_component, outputs=[prepare_btn]).then( + fn=disable_component, outputs=[type_of_nns_dropdown] + ).then( + fn=disable_component, outputs=[username_textbox] + ).then( + fn=disable_component, outputs=[prepare_btn] + ).then( + fn=enable_component, outputs=[accept_btn] + ).then( + fn=enable_component, outputs=[reject_btn] + ).then( + fn=hide_component, outputs=[prepare_btn] + ) + + accept_btn.click( + update_app, + inputs=[accept_btn, data_state, current_index, history, username_textbox], + outputs=[ + query_image, + top_1_textbox, + top_1_score_textbox, + question_textbox, + accept_reject_textbox, + current_index, + history, + data_state, + labeled_images_textbox, + accept_btn, + reject_btn, + final_results, + ], + ) + + reject_btn.click( + update_app, + inputs=[reject_btn, data_state, current_index, history, username_textbox], + outputs=[ + query_image, + top_1_textbox, + top_1_score_textbox, + question_textbox, + accept_reject_textbox, + current_index, + history, + data_state, + labeled_images_textbox, + accept_btn, + reject_btn, + final_results, + ], + ) + + +demo.launch(debug=False, server_name="0.0.0.0") +# demo.launch(debug=False) diff --git a/dogs/top1/n02085936-Maltese_dog_67_3.jpeg b/dogs/top1/n02085936-Maltese_dog_67_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..f0afacbe858b2a009d2cbf609973ea6d135e4a18 Binary files /dev/null and b/dogs/top1/n02085936-Maltese_dog_67_3.jpeg differ diff --git a/dogs/top1/n02086079-Pekinese_68_2.jpeg b/dogs/top1/n02086079-Pekinese_68_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..79ef546c39ae1ee878e35b47ee7be2167505d3cf Binary files /dev/null and b/dogs/top1/n02086079-Pekinese_68_2.jpeg differ diff --git a/dogs/top1/n02086240-Shih-Tzu_332_1.jpeg b/dogs/top1/n02086240-Shih-Tzu_332_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..17555ab13de499bc7c6a42f95718e6cd48993292 Binary files /dev/null and b/dogs/top1/n02086240-Shih-Tzu_332_1.jpeg differ diff --git a/dogs/top1/n02086240-Shih-Tzu_74_3.jpeg b/dogs/top1/n02086240-Shih-Tzu_74_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..059e4fa695ea1dc849f5b722ea8b6f1e08971c38 Binary files /dev/null and b/dogs/top1/n02086240-Shih-Tzu_74_3.jpeg differ diff --git a/dogs/top1/n02086646-Blenheim_spaniel_53_1.jpeg b/dogs/top1/n02086646-Blenheim_spaniel_53_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..fcb6e4700482f895805035efd9458146bce343af Binary files /dev/null and b/dogs/top1/n02086646-Blenheim_spaniel_53_1.jpeg differ diff --git a/dogs/top1/n02086910-papillon_337_2.jpeg b/dogs/top1/n02086910-papillon_337_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..6869cabecc6fa7ae5c3e290e68e1c5561f25eece Binary files /dev/null and b/dogs/top1/n02086910-papillon_337_2.jpeg differ diff --git a/dogs/top1/n02086910-papillon_56_0.jpeg b/dogs/top1/n02086910-papillon_56_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..03dbfdb3dbc7e9b6fa795989c432de5aaef853ae Binary files /dev/null and b/dogs/top1/n02086910-papillon_56_0.jpeg differ diff --git a/dogs/top1/n02087394-Rhodesian_ridgeback_431_2.jpeg b/dogs/top1/n02087394-Rhodesian_ridgeback_431_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..2bdb449439f08c2a2d0cd1aa80cffa5dfd4b694e Binary files /dev/null and b/dogs/top1/n02087394-Rhodesian_ridgeback_431_2.jpeg differ diff --git a/dogs/top1/n02088094-Afghan_hound_42_2.jpeg b/dogs/top1/n02088094-Afghan_hound_42_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..974e1b5027f9790def27ef485de94ddce65398b3 Binary files /dev/null and b/dogs/top1/n02088094-Afghan_hound_42_2.jpeg differ diff --git a/dogs/top1/n02088364-beagle_170_0.jpeg b/dogs/top1/n02088364-beagle_170_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..68ed13da10249ecfbfa364d226c81b4a51f34cda Binary files /dev/null and b/dogs/top1/n02088364-beagle_170_0.jpeg differ diff --git a/dogs/top1/n02088364-beagle_215_2.jpeg b/dogs/top1/n02088364-beagle_215_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..21f0e460314566d3be616223a8281405c3c1c341 Binary files /dev/null and b/dogs/top1/n02088364-beagle_215_2.jpeg differ diff --git a/dogs/top1/n02088364-beagle_226_1.jpeg b/dogs/top1/n02088364-beagle_226_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..22e3832fce5734c82534c1857493c8c22452b610 Binary files /dev/null and b/dogs/top1/n02088364-beagle_226_1.jpeg differ diff --git a/dogs/top1/n02088632-bluetick_253_1.jpeg b/dogs/top1/n02088632-bluetick_253_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..0ba764e680a1c62c1a70ab20851a017eb48e57c1 Binary files /dev/null and b/dogs/top1/n02088632-bluetick_253_1.jpeg differ diff --git a/dogs/top1/n02089078-black-and-tan_coonhound_285_2.jpeg b/dogs/top1/n02089078-black-and-tan_coonhound_285_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..0de4555f7b1de07fc4c2ef54a7b5f8625a225d92 Binary files /dev/null and b/dogs/top1/n02089078-black-and-tan_coonhound_285_2.jpeg differ diff --git a/dogs/top1/n02089078-black-and-tan_coonhound_55_3.jpeg b/dogs/top1/n02089078-black-and-tan_coonhound_55_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..8e9bc7a2320dc1a869553424166bc4c16e673dec Binary files /dev/null and b/dogs/top1/n02089078-black-and-tan_coonhound_55_3.jpeg differ diff --git a/dogs/top1/n02089867-Walker_hound_0_1.jpeg b/dogs/top1/n02089867-Walker_hound_0_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..a9f56d6632d6943e9f4bbb92319970d13f654444 Binary files /dev/null and b/dogs/top1/n02089867-Walker_hound_0_1.jpeg differ diff --git a/dogs/top1/n02089867-Walker_hound_429_1.jpeg b/dogs/top1/n02089867-Walker_hound_429_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..0cf2e45a1e666b59b78b6e251ee806f8c8086822 Binary files /dev/null and b/dogs/top1/n02089867-Walker_hound_429_1.jpeg differ diff --git a/dogs/top1/n02090379-redbone_42_3.jpeg b/dogs/top1/n02090379-redbone_42_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..eab6473c02d3b3097d570939bb7cf6aea02353bf Binary files /dev/null and b/dogs/top1/n02090379-redbone_42_3.jpeg differ diff --git a/dogs/top1/n02091032-Italian_greyhound_225_1.jpeg b/dogs/top1/n02091032-Italian_greyhound_225_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..80b80fa9d84a37d6eb4acf7f32cd8195aeba3e1a Binary files /dev/null and b/dogs/top1/n02091032-Italian_greyhound_225_1.jpeg differ diff --git a/dogs/top1/n02091032-Italian_greyhound_24_3.jpeg b/dogs/top1/n02091032-Italian_greyhound_24_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..b9d3eb56631c6446ecf1cc3d2c57e4452e43f3e4 Binary files /dev/null and b/dogs/top1/n02091032-Italian_greyhound_24_3.jpeg differ diff --git a/dogs/top1/n02091032-Italian_greyhound_2_0.jpeg b/dogs/top1/n02091032-Italian_greyhound_2_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..6e7877301724fd0e56b01907bb3b9be7afe50a2f Binary files /dev/null and b/dogs/top1/n02091032-Italian_greyhound_2_0.jpeg differ diff --git a/dogs/top1/n02091134-whippet_17_1.jpeg b/dogs/top1/n02091134-whippet_17_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..a041c4669a789d5f85f3b9fb5a744160261ed9da Binary files /dev/null and b/dogs/top1/n02091134-whippet_17_1.jpeg differ diff --git a/dogs/top1/n02091134-whippet_264_3.jpeg b/dogs/top1/n02091134-whippet_264_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..08842432591dd1a4f18a87dbbfcaee2c422ef5df Binary files /dev/null and b/dogs/top1/n02091134-whippet_264_3.jpeg differ diff --git a/dogs/top1/n02091134-whippet_64_1.jpeg b/dogs/top1/n02091134-whippet_64_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..e924b35245efc06dbfd4e9c14322ef6bdb9c6fcb Binary files /dev/null and b/dogs/top1/n02091134-whippet_64_1.jpeg differ diff --git a/dogs/top1/n02093256-Staffordshire_bullterrier_15_0.jpeg b/dogs/top1/n02093256-Staffordshire_bullterrier_15_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..24581ed722067de551bc27f01879a0179f249a1c Binary files /dev/null and b/dogs/top1/n02093256-Staffordshire_bullterrier_15_0.jpeg differ diff --git a/dogs/top1/n02093256-Staffordshire_bullterrier_340_0.jpeg b/dogs/top1/n02093256-Staffordshire_bullterrier_340_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..79d50141fef4a14b571341a2bb31cec9fa76d039 Binary files /dev/null and b/dogs/top1/n02093256-Staffordshire_bullterrier_340_0.jpeg differ diff --git a/dogs/top1/n02093428-American_Staffordshire_terrier_438_3.jpeg b/dogs/top1/n02093428-American_Staffordshire_terrier_438_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..237c13b11f944ca05a3b3f254a2bb89045295130 Binary files /dev/null and b/dogs/top1/n02093428-American_Staffordshire_terrier_438_3.jpeg differ diff --git a/dogs/top1/n02093859-Kerry_blue_terrier_33_3.jpeg b/dogs/top1/n02093859-Kerry_blue_terrier_33_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..ea76fcbc5f07dad1e522ee2d5c7d4ec30a8da89d Binary files /dev/null and b/dogs/top1/n02093859-Kerry_blue_terrier_33_3.jpeg differ diff --git a/dogs/top1/n02094114-Norfolk_terrier_19_3.jpeg b/dogs/top1/n02094114-Norfolk_terrier_19_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..322bc33e496b228fb92381547611fa0dc8724d47 Binary files /dev/null and b/dogs/top1/n02094114-Norfolk_terrier_19_3.jpeg differ diff --git a/dogs/top1/n02094258-Norwich_terrier_109_0.jpeg b/dogs/top1/n02094258-Norwich_terrier_109_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..a371cbb91117b8395f0d0f319e2046869c26ddb8 Binary files /dev/null and b/dogs/top1/n02094258-Norwich_terrier_109_0.jpeg differ diff --git a/dogs/top1/n02094258-Norwich_terrier_147_3.jpeg b/dogs/top1/n02094258-Norwich_terrier_147_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..67538b2f48c2148f9787c2f439856c77b8f6608b Binary files /dev/null and b/dogs/top1/n02094258-Norwich_terrier_147_3.jpeg differ diff --git a/dogs/top1/n02094258-Norwich_terrier_327_2.jpeg b/dogs/top1/n02094258-Norwich_terrier_327_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..36d9cca2b73c778bb2ef0cbf841334a9b896f102 Binary files /dev/null and b/dogs/top1/n02094258-Norwich_terrier_327_2.jpeg differ diff --git a/dogs/top1/n02094433-Yorkshire_terrier_33_0.jpeg b/dogs/top1/n02094433-Yorkshire_terrier_33_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..b3ee0910567dc721c7f7a2766c4e38b1f7d89c07 Binary files /dev/null and b/dogs/top1/n02094433-Yorkshire_terrier_33_0.jpeg differ diff --git a/dogs/top1/n02095314-wire-haired_fox_terrier_56_2.jpeg b/dogs/top1/n02095314-wire-haired_fox_terrier_56_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..75b64bb0ea42eb002db3fa18d2b68861d5b1c7d7 Binary files /dev/null and b/dogs/top1/n02095314-wire-haired_fox_terrier_56_2.jpeg differ diff --git a/dogs/top1/n02095570-Lakeland_terrier_74_2.jpeg b/dogs/top1/n02095570-Lakeland_terrier_74_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..30b15f374278907d84ec1bc78b70e1da892cf05c Binary files /dev/null and b/dogs/top1/n02095570-Lakeland_terrier_74_2.jpeg differ diff --git a/dogs/top1/n02095889-Sealyham_terrier_276_1.jpeg b/dogs/top1/n02095889-Sealyham_terrier_276_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..6cffa6a3acba5d1d604e865d413abc45f2e58018 Binary files /dev/null and b/dogs/top1/n02095889-Sealyham_terrier_276_1.jpeg differ diff --git a/dogs/top1/n02096051-Airedale_22_3.jpeg b/dogs/top1/n02096051-Airedale_22_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..877e1d0cc7264caa902030aaedbaf0c0a61f8243 Binary files /dev/null and b/dogs/top1/n02096051-Airedale_22_3.jpeg differ diff --git a/dogs/top1/n02096177-cairn_244_3.jpeg b/dogs/top1/n02096177-cairn_244_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..1c9a6d8f5aec4c76893f065fc4180e8652d356fb Binary files /dev/null and b/dogs/top1/n02096177-cairn_244_3.jpeg differ diff --git a/dogs/top1/n02096177-cairn_70_2.jpeg b/dogs/top1/n02096177-cairn_70_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..485cc2c0f586d495220529163c6a595fab1929d0 Binary files /dev/null and b/dogs/top1/n02096177-cairn_70_2.jpeg differ diff --git a/dogs/top1/n02096177-cairn_84_0.jpeg b/dogs/top1/n02096177-cairn_84_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..b958818899c64347c1b87350f8dd227d3e147e58 Binary files /dev/null and b/dogs/top1/n02096177-cairn_84_0.jpeg differ diff --git a/dogs/top1/n02096294-Australian_terrier_292_1.jpeg b/dogs/top1/n02096294-Australian_terrier_292_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..8f753343c729d9ca729e0ea2a070ceec9a504b11 Binary files /dev/null and b/dogs/top1/n02096294-Australian_terrier_292_1.jpeg differ diff --git a/dogs/top1/n02096294-Australian_terrier_413_2.jpeg b/dogs/top1/n02096294-Australian_terrier_413_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..eb91695b59cdffa3e8deebc097c421c283c5f39d Binary files /dev/null and b/dogs/top1/n02096294-Australian_terrier_413_2.jpeg differ diff --git a/dogs/top1/n02096585-Boston_bull_1_0.jpeg b/dogs/top1/n02096585-Boston_bull_1_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..6553875900f1cb87585ac1b578b8665987ec8d9c Binary files /dev/null and b/dogs/top1/n02096585-Boston_bull_1_0.jpeg differ diff --git a/dogs/top1/n02096585-Boston_bull_24_1.jpeg b/dogs/top1/n02096585-Boston_bull_24_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..663c46e9af9dfbd61baf9ef0356542fe501faca1 Binary files /dev/null and b/dogs/top1/n02096585-Boston_bull_24_1.jpeg differ diff --git a/dogs/top1/n02097047-miniature_schnauzer_83_1.jpeg b/dogs/top1/n02097047-miniature_schnauzer_83_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..77126522425075e1de4277cdd566b2e614150b4d Binary files /dev/null and b/dogs/top1/n02097047-miniature_schnauzer_83_1.jpeg differ diff --git a/dogs/top1/n02097474-Tibetan_terrier_135_3.jpeg b/dogs/top1/n02097474-Tibetan_terrier_135_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..e9bc9640cd6c7a31b955b95bb9325f391f7fe3c0 Binary files /dev/null and b/dogs/top1/n02097474-Tibetan_terrier_135_3.jpeg differ diff --git a/dogs/top1/n02097474-Tibetan_terrier_36_0.jpeg b/dogs/top1/n02097474-Tibetan_terrier_36_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..17e2135c41aed9f243d5accee5c9f29ec47a5bf8 Binary files /dev/null and b/dogs/top1/n02097474-Tibetan_terrier_36_0.jpeg differ diff --git a/dogs/top1/n02097658-silky_terrier_69_0.jpeg b/dogs/top1/n02097658-silky_terrier_69_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..42b5f46dffd7aa533e808fd7e704732d52cd42b1 Binary files /dev/null and b/dogs/top1/n02097658-silky_terrier_69_0.jpeg differ diff --git a/dogs/top1/n02098286-West_Highland_white_terrier_63_1.jpeg b/dogs/top1/n02098286-West_Highland_white_terrier_63_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..9dd018dca1e1dc8fae4335f7b56c2b6241151d99 Binary files /dev/null and b/dogs/top1/n02098286-West_Highland_white_terrier_63_1.jpeg differ diff --git a/dogs/top1/n02098286-West_Highland_white_terrier_78_2.jpeg b/dogs/top1/n02098286-West_Highland_white_terrier_78_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..35773c4214d5741a4d13584337f1c34318b54722 Binary files /dev/null and b/dogs/top1/n02098286-West_Highland_white_terrier_78_2.jpeg differ diff --git a/dogs/top1/n02098413-Lhasa_263_1.jpeg b/dogs/top1/n02098413-Lhasa_263_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..b98c696837ca7f4227116611c88c843657253f94 Binary files /dev/null and b/dogs/top1/n02098413-Lhasa_263_1.jpeg differ diff --git a/dogs/top1/n02099267-flat-coated_retriever_282_2.jpeg b/dogs/top1/n02099267-flat-coated_retriever_282_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..0f74cba74e7c719aec4a229c314940a1d5dcc82c Binary files /dev/null and b/dogs/top1/n02099267-flat-coated_retriever_282_2.jpeg differ diff --git a/dogs/top1/n02099267-flat-coated_retriever_46_3.jpeg b/dogs/top1/n02099267-flat-coated_retriever_46_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..545bd42c60466dc151e79af61042cf10baf0b1cd Binary files /dev/null and b/dogs/top1/n02099267-flat-coated_retriever_46_3.jpeg differ diff --git a/dogs/top1/n02099267-flat-coated_retriever_77_1.jpeg b/dogs/top1/n02099267-flat-coated_retriever_77_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..60907f7a2b1e57af2cb6bc0016d404e0f06535d6 Binary files /dev/null and b/dogs/top1/n02099267-flat-coated_retriever_77_1.jpeg differ diff --git a/dogs/top1/n02099601-golden_retriever_92_2.jpeg b/dogs/top1/n02099601-golden_retriever_92_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..e7fa62e392fa3ee0eb1f0d012f637b2503c817b7 Binary files /dev/null and b/dogs/top1/n02099601-golden_retriever_92_2.jpeg differ diff --git a/dogs/top1/n02100236-German_short-haired_pointer_29_0.jpeg b/dogs/top1/n02100236-German_short-haired_pointer_29_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..a25da97da9cb4272eea6400bc68f7a07f503f3a9 Binary files /dev/null and b/dogs/top1/n02100236-German_short-haired_pointer_29_0.jpeg differ diff --git a/dogs/top1/n02101006-Gordon_setter_62_1.jpeg b/dogs/top1/n02101006-Gordon_setter_62_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..a7103e24488b251fda00a163a870c0b94a22c1c2 Binary files /dev/null and b/dogs/top1/n02101006-Gordon_setter_62_1.jpeg differ diff --git a/dogs/top1/n02101388-Brittany_spaniel_299_1.jpeg b/dogs/top1/n02101388-Brittany_spaniel_299_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..0d9d66c36c86cfd966b574931815b801fbddea31 Binary files /dev/null and b/dogs/top1/n02101388-Brittany_spaniel_299_1.jpeg differ diff --git a/dogs/top1/n02101556-clumber_464_3.jpeg b/dogs/top1/n02101556-clumber_464_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..9b1d884af7c024989eafe79f635269ed15155145 Binary files /dev/null and b/dogs/top1/n02101556-clumber_464_3.jpeg differ diff --git a/dogs/top1/n02104029-kuvasz_44_0.jpeg b/dogs/top1/n02104029-kuvasz_44_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..7e81a5fed02433704bf0384b20aa8e2c20428c25 Binary files /dev/null and b/dogs/top1/n02104029-kuvasz_44_0.jpeg differ diff --git a/dogs/top1/n02104365-schipperke_288_2.jpeg b/dogs/top1/n02104365-schipperke_288_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..65cda57ec5e8c89e87c42e7ebc7cd211068c9b31 Binary files /dev/null and b/dogs/top1/n02104365-schipperke_288_2.jpeg differ diff --git a/dogs/top1/n02105251-briard_245_2.jpeg b/dogs/top1/n02105251-briard_245_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..bf68c2e1b9adf986d5b13209085d135474918a2d Binary files /dev/null and b/dogs/top1/n02105251-briard_245_2.jpeg differ diff --git a/dogs/top1/n02105251-briard_65_1.jpeg b/dogs/top1/n02105251-briard_65_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..e6c36cb4295bcf1a5fc9ed0aaf29fd14bc8b5570 Binary files /dev/null and b/dogs/top1/n02105251-briard_65_1.jpeg differ diff --git a/dogs/top1/n02105855-Shetland_sheepdog_304_2.jpeg b/dogs/top1/n02105855-Shetland_sheepdog_304_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..6aefef2da890051d1eef296d5ec19a672c20481c Binary files /dev/null and b/dogs/top1/n02105855-Shetland_sheepdog_304_2.jpeg differ diff --git a/dogs/top1/n02105855-Shetland_sheepdog_354_1.jpeg b/dogs/top1/n02105855-Shetland_sheepdog_354_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..fa6131eb575bdd94396e84630b618ccfa8fb1978 Binary files /dev/null and b/dogs/top1/n02105855-Shetland_sheepdog_354_1.jpeg differ diff --git a/dogs/top1/n02106030-collie_145_3.jpeg b/dogs/top1/n02106030-collie_145_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..7261fe9f044fb0fc445c27fd6764bcf82fb5da08 Binary files /dev/null and b/dogs/top1/n02106030-collie_145_3.jpeg differ diff --git a/dogs/top1/n02106382-Bouvier_des_Flandres_25_1.jpeg b/dogs/top1/n02106382-Bouvier_des_Flandres_25_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..f0d460d979ae1b2c8dc13cc87a91a4a4c6f22521 Binary files /dev/null and b/dogs/top1/n02106382-Bouvier_des_Flandres_25_1.jpeg differ diff --git a/dogs/top1/n02107683-Bernese_mountain_dog_113_1.jpeg b/dogs/top1/n02107683-Bernese_mountain_dog_113_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..0bf23e395739c49f153941e6571f8f4b32b2a5c8 Binary files /dev/null and b/dogs/top1/n02107683-Bernese_mountain_dog_113_1.jpeg differ diff --git a/dogs/top1/n02107683-Bernese_mountain_dog_36_2.jpeg b/dogs/top1/n02107683-Bernese_mountain_dog_36_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..43f2970e1b6f02649fe7ddb2c32c0c9c6300bfd9 Binary files /dev/null and b/dogs/top1/n02107683-Bernese_mountain_dog_36_2.jpeg differ diff --git a/dogs/top1/n02107908-Appenzeller_295_1.jpeg b/dogs/top1/n02107908-Appenzeller_295_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..d460754290951ed314f9cb36c9d59fb300968d1d Binary files /dev/null and b/dogs/top1/n02107908-Appenzeller_295_1.jpeg differ diff --git a/dogs/top1/n02108000-EntleBucher_27_2.jpeg b/dogs/top1/n02108000-EntleBucher_27_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..7913a1c0ab1696b08f5af6544808f12a6ad826cd Binary files /dev/null and b/dogs/top1/n02108000-EntleBucher_27_2.jpeg differ diff --git a/dogs/top1/n02108000-EntleBucher_29_3.jpeg b/dogs/top1/n02108000-EntleBucher_29_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..9cb8a1d20a87df7ab50a4f40d1cfab7286d83ea5 Binary files /dev/null and b/dogs/top1/n02108000-EntleBucher_29_3.jpeg differ diff --git a/dogs/top1/n02108089-boxer_77_2.jpeg b/dogs/top1/n02108089-boxer_77_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..85dc7338b5071428a789a5713aab197467c502cb Binary files /dev/null and b/dogs/top1/n02108089-boxer_77_2.jpeg differ diff --git a/dogs/top1/n02109047-Great_Dane_49_1.jpeg b/dogs/top1/n02109047-Great_Dane_49_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..2561933e0d02d12896451d7c00a7081211c837d2 Binary files /dev/null and b/dogs/top1/n02109047-Great_Dane_49_1.jpeg differ diff --git a/dogs/top1/n02109961-Eskimo_dog_461_0.jpeg b/dogs/top1/n02109961-Eskimo_dog_461_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..cff885e032ecc913306827bfea4a04a010b6e7c7 Binary files /dev/null and b/dogs/top1/n02109961-Eskimo_dog_461_0.jpeg differ diff --git a/dogs/top1/n02109961-Eskimo_dog_53_3.jpeg b/dogs/top1/n02109961-Eskimo_dog_53_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..388eb4860383b336be8ea67b418a66095f025373 Binary files /dev/null and b/dogs/top1/n02109961-Eskimo_dog_53_3.jpeg differ diff --git a/dogs/top1/n02109961-Eskimo_dog_91_0.jpeg b/dogs/top1/n02109961-Eskimo_dog_91_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..08c8deb7697ea4792e5874f7dbfe7a661b6fed92 Binary files /dev/null and b/dogs/top1/n02109961-Eskimo_dog_91_0.jpeg differ diff --git a/dogs/top1/n02110063-malamute_177_3.jpeg b/dogs/top1/n02110063-malamute_177_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..e1408ce3abf3376b25394f7bce2997babe581dc1 Binary files /dev/null and b/dogs/top1/n02110063-malamute_177_3.jpeg differ diff --git a/dogs/top1/n02110185-Siberian_husky_98_0.jpeg b/dogs/top1/n02110185-Siberian_husky_98_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..951b7d36f7f37f771956f9f2db2348e76efc60b2 Binary files /dev/null and b/dogs/top1/n02110185-Siberian_husky_98_0.jpeg differ diff --git a/dogs/top1/n02110627-affenpinscher_52_0.jpeg b/dogs/top1/n02110627-affenpinscher_52_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..27ab683bde7227c7a5337804e4e3ff91fa0ef389 Binary files /dev/null and b/dogs/top1/n02110627-affenpinscher_52_0.jpeg differ diff --git a/dogs/top1/n02110806-basenji_276_2.jpeg b/dogs/top1/n02110806-basenji_276_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..896d0e5dacaa2458b4d59ffab0f380f4bdf235ef Binary files /dev/null and b/dogs/top1/n02110806-basenji_276_2.jpeg differ diff --git a/dogs/top1/n02111129-Leonberg_434_0.jpeg b/dogs/top1/n02111129-Leonberg_434_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..b402b946251018533562e811ae84c6dea5092580 Binary files /dev/null and b/dogs/top1/n02111129-Leonberg_434_0.jpeg differ diff --git a/dogs/top1/n02111277-Newfoundland_35_2.jpeg b/dogs/top1/n02111277-Newfoundland_35_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..96943b3205bd845985965ff683587367ebf7e3be Binary files /dev/null and b/dogs/top1/n02111277-Newfoundland_35_2.jpeg differ diff --git a/dogs/top1/n02111277-Newfoundland_43_0.jpeg b/dogs/top1/n02111277-Newfoundland_43_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..a3ff0cedbf4f31e87e8cbf5d63ce0bc6b553a6ed Binary files /dev/null and b/dogs/top1/n02111277-Newfoundland_43_0.jpeg differ diff --git a/dogs/top1/n02111277-Newfoundland_46_2.jpeg b/dogs/top1/n02111277-Newfoundland_46_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..414dd1ef0ba746442fed28d00361e2b1cd8273b1 Binary files /dev/null and b/dogs/top1/n02111277-Newfoundland_46_2.jpeg differ diff --git a/dogs/top1/n02111500-Great_Pyrenees_301_3.jpeg b/dogs/top1/n02111500-Great_Pyrenees_301_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..f7588d183a431c2a581213bf035687278beec7af Binary files /dev/null and b/dogs/top1/n02111500-Great_Pyrenees_301_3.jpeg differ diff --git a/dogs/top1/n02111889-Samoyed_85_3.jpeg b/dogs/top1/n02111889-Samoyed_85_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..5a452716195f4084419ce7d9604090bdbdda486c Binary files /dev/null and b/dogs/top1/n02111889-Samoyed_85_3.jpeg differ diff --git a/dogs/top1/n02111889-Samoyed_8_0.jpeg b/dogs/top1/n02111889-Samoyed_8_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..f3478e46f1658ec0102353128e688a0cf28f8e93 Binary files /dev/null and b/dogs/top1/n02111889-Samoyed_8_0.jpeg differ diff --git a/dogs/top1/n02112018-Pomeranian_182_1.jpeg b/dogs/top1/n02112018-Pomeranian_182_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..9efe1b78d7abc3b320328b1762288c29638bde37 Binary files /dev/null and b/dogs/top1/n02112018-Pomeranian_182_1.jpeg differ diff --git a/dogs/top1/n02112018-Pomeranian_60_2.jpeg b/dogs/top1/n02112018-Pomeranian_60_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..39fed3287c623bbe4b31b8be62c566fb03266f34 Binary files /dev/null and b/dogs/top1/n02112018-Pomeranian_60_2.jpeg differ diff --git a/dogs/top1/n02112137-chow_41_0.jpeg b/dogs/top1/n02112137-chow_41_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..5fbd541d6507d3a224c579ce46f91ba4bdd573a6 Binary files /dev/null and b/dogs/top1/n02112137-chow_41_0.jpeg differ diff --git a/dogs/top1/n02112137-chow_75_1.jpeg b/dogs/top1/n02112137-chow_75_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..8f00bcbcae3c97f9ab421170dfcd61ca696a201e Binary files /dev/null and b/dogs/top1/n02112137-chow_75_1.jpeg differ diff --git a/dogs/top1/n02113186-Cardigan_199_0.jpeg b/dogs/top1/n02113186-Cardigan_199_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..9221eaea8b315ad83aa89b40dfacd770385ecb44 Binary files /dev/null and b/dogs/top1/n02113186-Cardigan_199_0.jpeg differ diff --git a/dogs/top1/n02113186-Cardigan_248_3.jpeg b/dogs/top1/n02113186-Cardigan_248_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..72365cb02b1b0339741567aac0aa9330812cf009 Binary files /dev/null and b/dogs/top1/n02113186-Cardigan_248_3.jpeg differ diff --git a/dogs/top1/n02113624-toy_poodle_204_1.jpeg b/dogs/top1/n02113624-toy_poodle_204_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..24ed4daf143d5affe7569d7fd2ebe27fe6fe6d8c Binary files /dev/null and b/dogs/top1/n02113624-toy_poodle_204_1.jpeg differ diff --git a/dogs/top1/n02113712-miniature_poodle_214_1.jpeg b/dogs/top1/n02113712-miniature_poodle_214_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..9b91ec4ff5286dab539ebcd73861cc1a506306ba Binary files /dev/null and b/dogs/top1/n02113712-miniature_poodle_214_1.jpeg differ diff --git a/dogs/top1/n02113712-miniature_poodle_23_3.jpeg b/dogs/top1/n02113712-miniature_poodle_23_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..4a11b21ea064f575cf4a5fcc7bf9965db8e96e62 Binary files /dev/null and b/dogs/top1/n02113712-miniature_poodle_23_3.jpeg differ diff --git a/dogs/top1/n02113799-standard_poodle_24_2.jpeg b/dogs/top1/n02113799-standard_poodle_24_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..c3b953bfcbb00e60def7e8315e5e6e45a34f5ad9 Binary files /dev/null and b/dogs/top1/n02113799-standard_poodle_24_2.jpeg differ diff --git a/dogs/top1/n02113799-standard_poodle_410_3.jpeg b/dogs/top1/n02113799-standard_poodle_410_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..2d0c1faee812d0254cddd025a375af51b58e0ecb Binary files /dev/null and b/dogs/top1/n02113799-standard_poodle_410_3.jpeg differ diff --git a/dogs/top1/n02115641-dingo_30_1.jpeg b/dogs/top1/n02115641-dingo_30_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..51b4307dff222c47e8e9184e8962d95358637d89 Binary files /dev/null and b/dogs/top1/n02115641-dingo_30_1.jpeg differ diff --git a/dogs/topk/n02085936-Maltese_dog_67_3.jpeg b/dogs/topk/n02085936-Maltese_dog_67_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..73cf4da00c7ab239ac275cf6da480acd4b09d048 Binary files /dev/null and b/dogs/topk/n02085936-Maltese_dog_67_3.jpeg differ diff --git a/dogs/topk/n02086079-Pekinese_68_2.jpeg b/dogs/topk/n02086079-Pekinese_68_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..90da5207d5f25aa9d27b4b53242a5b060b9454cf Binary files /dev/null and b/dogs/topk/n02086079-Pekinese_68_2.jpeg differ diff --git a/dogs/topk/n02086240-Shih-Tzu_332_1.jpeg b/dogs/topk/n02086240-Shih-Tzu_332_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..a148461a7742b138d713691015a43321f77ee123 Binary files /dev/null and b/dogs/topk/n02086240-Shih-Tzu_332_1.jpeg differ diff --git a/dogs/topk/n02086240-Shih-Tzu_74_3.jpeg b/dogs/topk/n02086240-Shih-Tzu_74_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..7be657d448c4521420f7608ccea02a7cd37d80d8 Binary files /dev/null and b/dogs/topk/n02086240-Shih-Tzu_74_3.jpeg differ diff --git a/dogs/topk/n02086646-Blenheim_spaniel_53_1.jpeg b/dogs/topk/n02086646-Blenheim_spaniel_53_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..08df19b3e24843ecb6f47db08816365ece00687e Binary files /dev/null and b/dogs/topk/n02086646-Blenheim_spaniel_53_1.jpeg differ diff --git a/dogs/topk/n02086910-papillon_337_2.jpeg b/dogs/topk/n02086910-papillon_337_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..fa9f0792eca05340efa92dc34bd1250e29abf0a3 Binary files /dev/null and b/dogs/topk/n02086910-papillon_337_2.jpeg differ diff --git a/dogs/topk/n02086910-papillon_56_0.jpeg b/dogs/topk/n02086910-papillon_56_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..ca789312d3882bc1d8ea29a60645c9364b87d5a4 Binary files /dev/null and b/dogs/topk/n02086910-papillon_56_0.jpeg differ diff --git a/dogs/topk/n02087394-Rhodesian_ridgeback_431_2.jpeg b/dogs/topk/n02087394-Rhodesian_ridgeback_431_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..8dd06902288a7e98e725a818a391a2636a4e669e Binary files /dev/null and b/dogs/topk/n02087394-Rhodesian_ridgeback_431_2.jpeg differ diff --git a/dogs/topk/n02088094-Afghan_hound_42_2.jpeg b/dogs/topk/n02088094-Afghan_hound_42_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..01f65a688aff05b450fcf5c870ea66bf846f5eda Binary files /dev/null and b/dogs/topk/n02088094-Afghan_hound_42_2.jpeg differ diff --git a/dogs/topk/n02088364-beagle_170_0.jpeg b/dogs/topk/n02088364-beagle_170_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..f3e2881058ca2cf4fbd4b0c33fe6b1eeaae15b3f Binary files /dev/null and b/dogs/topk/n02088364-beagle_170_0.jpeg differ diff --git a/dogs/topk/n02088364-beagle_215_2.jpeg b/dogs/topk/n02088364-beagle_215_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..279b0b81dfab1039369eb8efe07708c194d7425c Binary files /dev/null and b/dogs/topk/n02088364-beagle_215_2.jpeg differ diff --git a/dogs/topk/n02088364-beagle_226_1.jpeg b/dogs/topk/n02088364-beagle_226_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..a3e6604464001b1be4a6243271748a8b021603b8 Binary files /dev/null and b/dogs/topk/n02088364-beagle_226_1.jpeg differ diff --git a/dogs/topk/n02088632-bluetick_253_1.jpeg b/dogs/topk/n02088632-bluetick_253_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..4f2282568f45ad4eeec5922dacc1244ac34bb4c2 Binary files /dev/null and b/dogs/topk/n02088632-bluetick_253_1.jpeg differ diff --git a/dogs/topk/n02089078-black-and-tan_coonhound_285_2.jpeg b/dogs/topk/n02089078-black-and-tan_coonhound_285_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..480cec705628e2ce4fcc93618ce0ba9fd3a59a16 Binary files /dev/null and b/dogs/topk/n02089078-black-and-tan_coonhound_285_2.jpeg differ diff --git a/dogs/topk/n02089078-black-and-tan_coonhound_55_3.jpeg b/dogs/topk/n02089078-black-and-tan_coonhound_55_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..fe6040d83a47aaf4fd61442c5a1ddd88784cc99f Binary files /dev/null and b/dogs/topk/n02089078-black-and-tan_coonhound_55_3.jpeg differ diff --git a/dogs/topk/n02089867-Walker_hound_0_1.jpeg b/dogs/topk/n02089867-Walker_hound_0_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..0f50794d2eecdec7195e666b60a2d5d39fb7da91 Binary files /dev/null and b/dogs/topk/n02089867-Walker_hound_0_1.jpeg differ diff --git a/dogs/topk/n02089867-Walker_hound_429_1.jpeg b/dogs/topk/n02089867-Walker_hound_429_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..7f81d45ebec8979aa463da290b69e468168ad747 Binary files /dev/null and b/dogs/topk/n02089867-Walker_hound_429_1.jpeg differ diff --git a/dogs/topk/n02090379-redbone_42_3.jpeg b/dogs/topk/n02090379-redbone_42_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..c08648bb1bb81895e1d630fa6c325de95da86d24 Binary files /dev/null and b/dogs/topk/n02090379-redbone_42_3.jpeg differ diff --git a/dogs/topk/n02091032-Italian_greyhound_225_1.jpeg b/dogs/topk/n02091032-Italian_greyhound_225_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..81248f5769f97d26860b60cff3497686a80ebdcd Binary files /dev/null and b/dogs/topk/n02091032-Italian_greyhound_225_1.jpeg differ diff --git a/dogs/topk/n02091032-Italian_greyhound_24_3.jpeg b/dogs/topk/n02091032-Italian_greyhound_24_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..6335308751e804164fa386dcaa3a3dd8a0142672 Binary files /dev/null and b/dogs/topk/n02091032-Italian_greyhound_24_3.jpeg differ diff --git a/dogs/topk/n02091032-Italian_greyhound_2_0.jpeg b/dogs/topk/n02091032-Italian_greyhound_2_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..c6eb7c5569efe00ada01eb9f2ad43584aaec9044 Binary files /dev/null and b/dogs/topk/n02091032-Italian_greyhound_2_0.jpeg differ diff --git a/dogs/topk/n02091134-whippet_17_1.jpeg b/dogs/topk/n02091134-whippet_17_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..5295aff4e82eec26e2334768a907b4338abc805d Binary files /dev/null and b/dogs/topk/n02091134-whippet_17_1.jpeg differ diff --git a/dogs/topk/n02091134-whippet_264_3.jpeg b/dogs/topk/n02091134-whippet_264_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..fa9bf7cdd7d2b64928341ab7745d6e399fd4d255 Binary files /dev/null and b/dogs/topk/n02091134-whippet_264_3.jpeg differ diff --git a/dogs/topk/n02091134-whippet_64_1.jpeg b/dogs/topk/n02091134-whippet_64_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..54b5c15845f6e793f9ea8b96660b2056d1698ef8 Binary files /dev/null and b/dogs/topk/n02091134-whippet_64_1.jpeg differ diff --git a/dogs/topk/n02093256-Staffordshire_bullterrier_15_0.jpeg b/dogs/topk/n02093256-Staffordshire_bullterrier_15_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..391ffc31fa237b58df1d6cacd50eb08a53ccb556 Binary files /dev/null and b/dogs/topk/n02093256-Staffordshire_bullterrier_15_0.jpeg differ diff --git a/dogs/topk/n02093256-Staffordshire_bullterrier_340_0.jpeg b/dogs/topk/n02093256-Staffordshire_bullterrier_340_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..0836c9b08635a7cf00288db1a791bf0ef83c658d Binary files /dev/null and b/dogs/topk/n02093256-Staffordshire_bullterrier_340_0.jpeg differ diff --git a/dogs/topk/n02093428-American_Staffordshire_terrier_438_3.jpeg b/dogs/topk/n02093428-American_Staffordshire_terrier_438_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..90886fdd9bf5fa86b4c0297967d5b65d1ab563fa Binary files /dev/null and b/dogs/topk/n02093428-American_Staffordshire_terrier_438_3.jpeg differ diff --git a/dogs/topk/n02093859-Kerry_blue_terrier_33_3.jpeg b/dogs/topk/n02093859-Kerry_blue_terrier_33_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..6a8c506e4ee53483bc0325fa4bccdd3aed78f40e Binary files /dev/null and b/dogs/topk/n02093859-Kerry_blue_terrier_33_3.jpeg differ diff --git a/dogs/topk/n02094114-Norfolk_terrier_19_3.jpeg b/dogs/topk/n02094114-Norfolk_terrier_19_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..40af17e69c0d1d5cd500c6cd722f026a93f51ad6 Binary files /dev/null and b/dogs/topk/n02094114-Norfolk_terrier_19_3.jpeg differ diff --git a/dogs/topk/n02094258-Norwich_terrier_109_0.jpeg b/dogs/topk/n02094258-Norwich_terrier_109_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..aacca2acfa7cdabf7b48da238a1c4613e8c2fc7d Binary files /dev/null and b/dogs/topk/n02094258-Norwich_terrier_109_0.jpeg differ diff --git a/dogs/topk/n02094258-Norwich_terrier_147_3.jpeg b/dogs/topk/n02094258-Norwich_terrier_147_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..f90752ca57dfbcf7e7f3280cce6ca3d495699fa0 Binary files /dev/null and b/dogs/topk/n02094258-Norwich_terrier_147_3.jpeg differ diff --git a/dogs/topk/n02094258-Norwich_terrier_327_2.jpeg b/dogs/topk/n02094258-Norwich_terrier_327_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..df38ce6ac0495027249fb2108a05ed7eff628182 Binary files /dev/null and b/dogs/topk/n02094258-Norwich_terrier_327_2.jpeg differ diff --git a/dogs/topk/n02094433-Yorkshire_terrier_33_0.jpeg b/dogs/topk/n02094433-Yorkshire_terrier_33_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..efd0765c756aee6986be1db422612b2b24d6276b Binary files /dev/null and b/dogs/topk/n02094433-Yorkshire_terrier_33_0.jpeg differ diff --git a/dogs/topk/n02095314-wire-haired_fox_terrier_56_2.jpeg b/dogs/topk/n02095314-wire-haired_fox_terrier_56_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..df207b24d95ce9670980571c0dea5714d421b726 Binary files /dev/null and b/dogs/topk/n02095314-wire-haired_fox_terrier_56_2.jpeg differ diff --git a/dogs/topk/n02095570-Lakeland_terrier_74_2.jpeg b/dogs/topk/n02095570-Lakeland_terrier_74_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..7658ec585338222ced0f2e22789c344bb2e762be Binary files /dev/null and b/dogs/topk/n02095570-Lakeland_terrier_74_2.jpeg differ diff --git a/dogs/topk/n02095889-Sealyham_terrier_276_1.jpeg b/dogs/topk/n02095889-Sealyham_terrier_276_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..1c2d144fa0936dd6e0b91d5aeb83272dca117895 Binary files /dev/null and b/dogs/topk/n02095889-Sealyham_terrier_276_1.jpeg differ diff --git a/dogs/topk/n02096051-Airedale_22_3.jpeg b/dogs/topk/n02096051-Airedale_22_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..5bb56407b22129bf9458ae78f8b8ce3acdb52f16 Binary files /dev/null and b/dogs/topk/n02096051-Airedale_22_3.jpeg differ diff --git a/dogs/topk/n02096177-cairn_244_3.jpeg b/dogs/topk/n02096177-cairn_244_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..d3c3cc95455ff3c89bb1191a14fd3962447058b9 Binary files /dev/null and b/dogs/topk/n02096177-cairn_244_3.jpeg differ diff --git a/dogs/topk/n02096177-cairn_70_2.jpeg b/dogs/topk/n02096177-cairn_70_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..7af01e47d019bedcf16bb9def5b57b3ea343305a Binary files /dev/null and b/dogs/topk/n02096177-cairn_70_2.jpeg differ diff --git a/dogs/topk/n02096177-cairn_84_0.jpeg b/dogs/topk/n02096177-cairn_84_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..e7df0e712486125d99b79ac16474604a9c6b3d4a Binary files /dev/null and b/dogs/topk/n02096177-cairn_84_0.jpeg differ diff --git a/dogs/topk/n02096294-Australian_terrier_292_1.jpeg b/dogs/topk/n02096294-Australian_terrier_292_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..c2ee1bd1e499b625b066a3f870c217b151caf375 Binary files /dev/null and b/dogs/topk/n02096294-Australian_terrier_292_1.jpeg differ diff --git a/dogs/topk/n02096294-Australian_terrier_413_2.jpeg b/dogs/topk/n02096294-Australian_terrier_413_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..53dc2657302957db8c47605a437f4dbeeb45dcf1 Binary files /dev/null and b/dogs/topk/n02096294-Australian_terrier_413_2.jpeg differ diff --git a/dogs/topk/n02096585-Boston_bull_1_0.jpeg b/dogs/topk/n02096585-Boston_bull_1_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..4499252982a1682a5a1f63b05b2d93f85aaff1e2 Binary files /dev/null and b/dogs/topk/n02096585-Boston_bull_1_0.jpeg differ diff --git a/dogs/topk/n02096585-Boston_bull_24_1.jpeg b/dogs/topk/n02096585-Boston_bull_24_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..6c49e5ad83b7117f1a6099065e1d3b8dd380bb83 Binary files /dev/null and b/dogs/topk/n02096585-Boston_bull_24_1.jpeg differ diff --git a/dogs/topk/n02097047-miniature_schnauzer_83_1.jpeg b/dogs/topk/n02097047-miniature_schnauzer_83_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..84b855b968390d3f7d61bf93760c3cad2d9072af Binary files /dev/null and b/dogs/topk/n02097047-miniature_schnauzer_83_1.jpeg differ diff --git a/dogs/topk/n02097474-Tibetan_terrier_135_3.jpeg b/dogs/topk/n02097474-Tibetan_terrier_135_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..17a4b911f8f1aac0e8a12a79d315ac102661d658 Binary files /dev/null and b/dogs/topk/n02097474-Tibetan_terrier_135_3.jpeg differ diff --git a/dogs/topk/n02097474-Tibetan_terrier_36_0.jpeg b/dogs/topk/n02097474-Tibetan_terrier_36_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..c820fd35b671ceeda70122249d52feef3b374963 Binary files /dev/null and b/dogs/topk/n02097474-Tibetan_terrier_36_0.jpeg differ diff --git a/dogs/topk/n02097658-silky_terrier_69_0.jpeg b/dogs/topk/n02097658-silky_terrier_69_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..08d12ba3ca67568deb776687978c0a8743f2f392 Binary files /dev/null and b/dogs/topk/n02097658-silky_terrier_69_0.jpeg differ diff --git a/dogs/topk/n02098286-West_Highland_white_terrier_63_1.jpeg b/dogs/topk/n02098286-West_Highland_white_terrier_63_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..bec172edddebb2b9fb2605fe90a7c2f1eb759967 Binary files /dev/null and b/dogs/topk/n02098286-West_Highland_white_terrier_63_1.jpeg differ diff --git a/dogs/topk/n02098286-West_Highland_white_terrier_78_2.jpeg b/dogs/topk/n02098286-West_Highland_white_terrier_78_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..e5da1ebbd3b6dfb9ad0e69e9fea31a8688e02954 Binary files /dev/null and b/dogs/topk/n02098286-West_Highland_white_terrier_78_2.jpeg differ diff --git a/dogs/topk/n02098413-Lhasa_263_1.jpeg b/dogs/topk/n02098413-Lhasa_263_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..c7b6515f1a1b01a89bdb88d4dd67ac4723c1b5c8 Binary files /dev/null and b/dogs/topk/n02098413-Lhasa_263_1.jpeg differ diff --git a/dogs/topk/n02099267-flat-coated_retriever_282_2.jpeg b/dogs/topk/n02099267-flat-coated_retriever_282_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..87fe3c884a7aa82d980344ecfde8ae71bfa61f40 Binary files /dev/null and b/dogs/topk/n02099267-flat-coated_retriever_282_2.jpeg differ diff --git a/dogs/topk/n02099267-flat-coated_retriever_46_3.jpeg b/dogs/topk/n02099267-flat-coated_retriever_46_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..b0ceb1ee9ed50cd5a197840cd965932d822f03a2 Binary files /dev/null and b/dogs/topk/n02099267-flat-coated_retriever_46_3.jpeg differ diff --git a/dogs/topk/n02099267-flat-coated_retriever_77_1.jpeg b/dogs/topk/n02099267-flat-coated_retriever_77_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..544e6d749556587603fa8b7a67a26c4ba693dd46 Binary files /dev/null and b/dogs/topk/n02099267-flat-coated_retriever_77_1.jpeg differ diff --git a/dogs/topk/n02099601-golden_retriever_92_2.jpeg b/dogs/topk/n02099601-golden_retriever_92_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..cbc81a439d6efbda09f68d582b2a8c5e9c02b032 Binary files /dev/null and b/dogs/topk/n02099601-golden_retriever_92_2.jpeg differ diff --git a/dogs/topk/n02100236-German_short-haired_pointer_29_0.jpeg b/dogs/topk/n02100236-German_short-haired_pointer_29_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..4b3d7c0fa60081c39682f12e6b4b3bbcd26017b4 Binary files /dev/null and b/dogs/topk/n02100236-German_short-haired_pointer_29_0.jpeg differ diff --git a/dogs/topk/n02101006-Gordon_setter_62_1.jpeg b/dogs/topk/n02101006-Gordon_setter_62_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..0231eecd556743989da5b022f2ef390c31993171 Binary files /dev/null and b/dogs/topk/n02101006-Gordon_setter_62_1.jpeg differ diff --git a/dogs/topk/n02101388-Brittany_spaniel_299_1.jpeg b/dogs/topk/n02101388-Brittany_spaniel_299_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..0130b5591bdfb577e21363fd8a4373d03d3a9543 Binary files /dev/null and b/dogs/topk/n02101388-Brittany_spaniel_299_1.jpeg differ diff --git a/dogs/topk/n02101556-clumber_464_3.jpeg b/dogs/topk/n02101556-clumber_464_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..8c61beefe86b4e258478944c633c0d75cbad7d50 Binary files /dev/null and b/dogs/topk/n02101556-clumber_464_3.jpeg differ diff --git a/dogs/topk/n02104029-kuvasz_44_0.jpeg b/dogs/topk/n02104029-kuvasz_44_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..84d581f18c0c70c18d48d315fce4b9815e788bc7 Binary files /dev/null and b/dogs/topk/n02104029-kuvasz_44_0.jpeg differ diff --git a/dogs/topk/n02104365-schipperke_288_2.jpeg b/dogs/topk/n02104365-schipperke_288_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..1ebf3b903de4512b68500ff15223777c4c1a850e Binary files /dev/null and b/dogs/topk/n02104365-schipperke_288_2.jpeg differ diff --git a/dogs/topk/n02105251-briard_245_2.jpeg b/dogs/topk/n02105251-briard_245_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..1f0fd95d236e484f001ea82a497e47b4f4e5e3ce Binary files /dev/null and b/dogs/topk/n02105251-briard_245_2.jpeg differ diff --git a/dogs/topk/n02105251-briard_65_1.jpeg b/dogs/topk/n02105251-briard_65_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..f39cdd599738565d7ad46010316349edb11cc171 Binary files /dev/null and b/dogs/topk/n02105251-briard_65_1.jpeg differ diff --git a/dogs/topk/n02105855-Shetland_sheepdog_304_2.jpeg b/dogs/topk/n02105855-Shetland_sheepdog_304_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..d50e6b4595fae93b649e486c5570a82b11980ecd Binary files /dev/null and b/dogs/topk/n02105855-Shetland_sheepdog_304_2.jpeg differ diff --git a/dogs/topk/n02105855-Shetland_sheepdog_354_1.jpeg b/dogs/topk/n02105855-Shetland_sheepdog_354_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..0e0e6367153e805e41a159789892dd8dd7bd19ef Binary files /dev/null and b/dogs/topk/n02105855-Shetland_sheepdog_354_1.jpeg differ diff --git a/dogs/topk/n02106030-collie_145_3.jpeg b/dogs/topk/n02106030-collie_145_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..54078c3f2549f07c4db8bdef74d878f5332226b0 Binary files /dev/null and b/dogs/topk/n02106030-collie_145_3.jpeg differ diff --git a/dogs/topk/n02106382-Bouvier_des_Flandres_25_1.jpeg b/dogs/topk/n02106382-Bouvier_des_Flandres_25_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..9d67218e717f02be5be12a49bb3407d0f5aaf097 Binary files /dev/null and b/dogs/topk/n02106382-Bouvier_des_Flandres_25_1.jpeg differ diff --git a/dogs/topk/n02107683-Bernese_mountain_dog_113_1.jpeg b/dogs/topk/n02107683-Bernese_mountain_dog_113_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..cc3fa9b884fcf0086f3a55b450920de55a77c0eb Binary files /dev/null and b/dogs/topk/n02107683-Bernese_mountain_dog_113_1.jpeg differ diff --git a/dogs/topk/n02107683-Bernese_mountain_dog_36_2.jpeg b/dogs/topk/n02107683-Bernese_mountain_dog_36_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..c3f91c19b3d12ddf508a4285bb37f3c170cac401 Binary files /dev/null and b/dogs/topk/n02107683-Bernese_mountain_dog_36_2.jpeg differ diff --git a/dogs/topk/n02107908-Appenzeller_295_1.jpeg b/dogs/topk/n02107908-Appenzeller_295_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..6960483d5e5e6fb1c6617af9f72a95c13ef8f7d6 Binary files /dev/null and b/dogs/topk/n02107908-Appenzeller_295_1.jpeg differ diff --git a/dogs/topk/n02108000-EntleBucher_27_2.jpeg b/dogs/topk/n02108000-EntleBucher_27_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..01b646473d7cbb3362f4b100e8ac07da77ef29b7 Binary files /dev/null and b/dogs/topk/n02108000-EntleBucher_27_2.jpeg differ diff --git a/dogs/topk/n02108000-EntleBucher_29_3.jpeg b/dogs/topk/n02108000-EntleBucher_29_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..91adb3d254ce6f75a3b80bff13190c68718b7e18 Binary files /dev/null and b/dogs/topk/n02108000-EntleBucher_29_3.jpeg differ diff --git a/dogs/topk/n02108089-boxer_77_2.jpeg b/dogs/topk/n02108089-boxer_77_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..18649f621fbede51e0b5437ebeea8253c40afef0 Binary files /dev/null and b/dogs/topk/n02108089-boxer_77_2.jpeg differ diff --git a/dogs/topk/n02109047-Great_Dane_49_1.jpeg b/dogs/topk/n02109047-Great_Dane_49_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..b6ef1009dc40d9147e9acd1b262dae1256530af5 Binary files /dev/null and b/dogs/topk/n02109047-Great_Dane_49_1.jpeg differ diff --git a/dogs/topk/n02109961-Eskimo_dog_461_0.jpeg b/dogs/topk/n02109961-Eskimo_dog_461_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..2f25d9b2ad1ddadbef82721e9d084c93523692bf Binary files /dev/null and b/dogs/topk/n02109961-Eskimo_dog_461_0.jpeg differ diff --git a/dogs/topk/n02109961-Eskimo_dog_53_3.jpeg b/dogs/topk/n02109961-Eskimo_dog_53_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..c3e0401d2c9f14f139b3479085bbf31805fe516a Binary files /dev/null and b/dogs/topk/n02109961-Eskimo_dog_53_3.jpeg differ diff --git a/dogs/topk/n02109961-Eskimo_dog_91_0.jpeg b/dogs/topk/n02109961-Eskimo_dog_91_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..fa789a261d4243e162cfdd5073394b2d6a5354e9 Binary files /dev/null and b/dogs/topk/n02109961-Eskimo_dog_91_0.jpeg differ diff --git a/dogs/topk/n02110063-malamute_177_3.jpeg b/dogs/topk/n02110063-malamute_177_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..98491fd8e46b69a5cb965365ff1cd2c3cb76f857 Binary files /dev/null and b/dogs/topk/n02110063-malamute_177_3.jpeg differ diff --git a/dogs/topk/n02110185-Siberian_husky_98_0.jpeg b/dogs/topk/n02110185-Siberian_husky_98_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..13f5e60ad7a8670f740d5122e299ef854471af61 Binary files /dev/null and b/dogs/topk/n02110185-Siberian_husky_98_0.jpeg differ diff --git a/dogs/topk/n02110627-affenpinscher_52_0.jpeg b/dogs/topk/n02110627-affenpinscher_52_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..f7cfd2a7e8d7eca257e359a3aa9f338c8eb0803e Binary files /dev/null and b/dogs/topk/n02110627-affenpinscher_52_0.jpeg differ diff --git a/dogs/topk/n02110806-basenji_276_2.jpeg b/dogs/topk/n02110806-basenji_276_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..0ddea6660f35322ca1b18b9094ad73850078619c Binary files /dev/null and b/dogs/topk/n02110806-basenji_276_2.jpeg differ diff --git a/dogs/topk/n02111129-Leonberg_434_0.jpeg b/dogs/topk/n02111129-Leonberg_434_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..5a7defced4f437a34def7f775a37c4a37f136504 Binary files /dev/null and b/dogs/topk/n02111129-Leonberg_434_0.jpeg differ diff --git a/dogs/topk/n02111277-Newfoundland_35_2.jpeg b/dogs/topk/n02111277-Newfoundland_35_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..6aec094b57442827ec40749d9839ccd79b8debf5 Binary files /dev/null and b/dogs/topk/n02111277-Newfoundland_35_2.jpeg differ diff --git a/dogs/topk/n02111277-Newfoundland_43_0.jpeg b/dogs/topk/n02111277-Newfoundland_43_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..e95699fe8493d9095f0e7cbda8b69397ba81568c Binary files /dev/null and b/dogs/topk/n02111277-Newfoundland_43_0.jpeg differ diff --git a/dogs/topk/n02111277-Newfoundland_46_2.jpeg b/dogs/topk/n02111277-Newfoundland_46_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..03810b1932408903ab7bed79155be62a7a74c14d Binary files /dev/null and b/dogs/topk/n02111277-Newfoundland_46_2.jpeg differ diff --git a/dogs/topk/n02111500-Great_Pyrenees_301_3.jpeg b/dogs/topk/n02111500-Great_Pyrenees_301_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..f9a310fec40c588cb4d0e34d893c1ec7ba4458ac Binary files /dev/null and b/dogs/topk/n02111500-Great_Pyrenees_301_3.jpeg differ diff --git a/dogs/topk/n02111889-Samoyed_85_3.jpeg b/dogs/topk/n02111889-Samoyed_85_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..5b7b3f766d8f9c62e006dcfd66397cf62ac7dcbb Binary files /dev/null and b/dogs/topk/n02111889-Samoyed_85_3.jpeg differ diff --git a/dogs/topk/n02111889-Samoyed_8_0.jpeg b/dogs/topk/n02111889-Samoyed_8_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..3c8dc73459369f2012e562b4f005462a10497def Binary files /dev/null and b/dogs/topk/n02111889-Samoyed_8_0.jpeg differ diff --git a/dogs/topk/n02112018-Pomeranian_182_1.jpeg b/dogs/topk/n02112018-Pomeranian_182_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..b51e01ac41eebeddaf04763fa594f76aa023c0f8 Binary files /dev/null and b/dogs/topk/n02112018-Pomeranian_182_1.jpeg differ diff --git a/dogs/topk/n02112018-Pomeranian_60_2.jpeg b/dogs/topk/n02112018-Pomeranian_60_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..ac63a1c06f0298075acf439530f83a6a5ccd9b3f Binary files /dev/null and b/dogs/topk/n02112018-Pomeranian_60_2.jpeg differ diff --git a/dogs/topk/n02112137-chow_41_0.jpeg b/dogs/topk/n02112137-chow_41_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..b2552db0d7064812051ba945c099336c43242c4f Binary files /dev/null and b/dogs/topk/n02112137-chow_41_0.jpeg differ diff --git a/dogs/topk/n02112137-chow_75_1.jpeg b/dogs/topk/n02112137-chow_75_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..0a1f48de1e808a707ed4039aabaa2ca8d82c6d2c Binary files /dev/null and b/dogs/topk/n02112137-chow_75_1.jpeg differ diff --git a/dogs/topk/n02113186-Cardigan_199_0.jpeg b/dogs/topk/n02113186-Cardigan_199_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..d410f4beeb5d565073790107d7cd5a63967425b4 Binary files /dev/null and b/dogs/topk/n02113186-Cardigan_199_0.jpeg differ diff --git a/dogs/topk/n02113186-Cardigan_248_3.jpeg b/dogs/topk/n02113186-Cardigan_248_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..1b102faba84c44b305c2b0bc2d9c4de068d10b84 Binary files /dev/null and b/dogs/topk/n02113186-Cardigan_248_3.jpeg differ diff --git a/dogs/topk/n02113624-toy_poodle_204_1.jpeg b/dogs/topk/n02113624-toy_poodle_204_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..74960ce1f40191776c410775c2562a965d6cc824 Binary files /dev/null and b/dogs/topk/n02113624-toy_poodle_204_1.jpeg differ diff --git a/dogs/topk/n02113712-miniature_poodle_214_1.jpeg b/dogs/topk/n02113712-miniature_poodle_214_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..099c3e98d410a3e135d8eb3da5eea84e1bbc7984 Binary files /dev/null and b/dogs/topk/n02113712-miniature_poodle_214_1.jpeg differ diff --git a/dogs/topk/n02113712-miniature_poodle_23_3.jpeg b/dogs/topk/n02113712-miniature_poodle_23_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..c4607ea9135ee570825c2eb92207c5677ff69c6a Binary files /dev/null and b/dogs/topk/n02113712-miniature_poodle_23_3.jpeg differ diff --git a/dogs/topk/n02113799-standard_poodle_24_2.jpeg b/dogs/topk/n02113799-standard_poodle_24_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..22e257d6b579be056309c2756cede902b2da52fb Binary files /dev/null and b/dogs/topk/n02113799-standard_poodle_24_2.jpeg differ diff --git a/dogs/topk/n02113799-standard_poodle_410_3.jpeg b/dogs/topk/n02113799-standard_poodle_410_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..9802e86b08772a5e34188658273b3ca0f3fd5f9e Binary files /dev/null and b/dogs/topk/n02113799-standard_poodle_410_3.jpeg differ diff --git a/dogs/topk/n02115641-dingo_30_1.jpeg b/dogs/topk/n02115641-dingo_30_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..5d21665d66457dd50e2bd824312b9acf2c35d020 Binary files /dev/null and b/dogs/topk/n02115641-dingo_30_1.jpeg differ diff --git a/images/intro.jpg b/images/intro.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1f35051d6365ce41bff54c54fd0ecb37847ae3e0 --- /dev/null +++ b/images/intro.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a0efed9b4f56baf5e445df7fbdcb87f89dc297e1f94c6f743f16c21e076aad3f +size 1287488 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..023006cac135ec02ebedca1827410947fdc606a6 --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +gdown \ No newline at end of file diff --git a/showresults.py b/showresults.py new file mode 100644 index 0000000000000000000000000000000000000000..30b052b6cf16851500b9464824dab066dec59ab7 --- /dev/null +++ b/showresults.py @@ -0,0 +1,98 @@ +from glob import glob +import json +import numpy as np +import gradio as gr + + + +def calculate_the_results(): + all_jsons_path = glob('./responses/*.json') + all_jsons = [json.load(open(path)) for path in all_jsons_path] + + # count number of user corrects for each json and average and also calcaulte the type of NNs + + top1_results = [] + top1_acc = [] + topK_results = [] + topK_acc = [] + + for js in all_jsons: + # read one key and determine the type of NN + type_of_NNs = js['history'][0]['type'] + if type_of_NNs == 'topK': + acc = np.mean([js['history'][x]['is_user_correct'] for x in range(len(js['history']))]) + topK_acc.append((acc*100).round(2)) + topK_results.append(js) + + else: + top1_results.append(js) + acc = np.mean([js['history'][x]['is_user_correct'] for x in range(len(js['history']))]) + top1_acc.append((acc*100).round(2)) + + + print('# of top1: ', len(top1_results)) + print('top1 Accuracy: ', top1_acc) + # print std and mean of top1_acc + std = np.std(top1_acc) + mean = np.mean(top1_acc) + + print('top1 std: ', std) + print('top1 mean: ', mean) + + + + + print('----------------------------------') + + + print('# of topK: ', len(topK_results)) + print('topK Accuracy: ', topK_acc) + + std = np.std(topK_acc) + mean = np.mean(topK_acc) + + print('topK std: ', std) + print('topK mean: ', mean) + + + + +def calculate_the_results(): + all_jsons_path = glob('./responses/*.json') + all_jsons = [json.load(open(path)) for path in all_jsons_path] + + # count number of user corrects for each json and average and also calculate the type of NNs + + top1_results = [] + top1_acc = [] + topK_results = [] + topK_acc = [] + + for js in all_jsons: + # read one key and determine the type of NN + type_of_NNs = js['history'][0]['type'] + if type_of_NNs == 'topK': + acc = np.mean([js['history'][x]['is_user_correct'] for x in range(len(js['history']))]) + topK_acc.append((acc*100).round(2)) + topK_results.append(js) + else: + top1_results.append(js) + acc = np.mean([js['history'][x]['is_user_correct'] for x in range(len(js['history']))]) + top1_acc.append((acc*100).round(2)) + + top1_output = f"# of top1: {len(top1_results)}\ntop1 Accuracy: {top1_acc}\ntop1 std: {np.std(top1_acc)}\ntop1 mean: {np.mean(top1_acc)}\n----------------------------------\n" + topK_output = f"# of topK: {len(topK_results)}\ntopK Accuracy: {topK_acc}\ntopK std: {np.std(topK_acc)}\ntopK mean: {np.mean(topK_acc)}" + + return top1_output + topK_output + + +with gr.Blocks(theme=gr.themes.Soft()) as demo: + update_btn = gr.Button("Calculate the results") + results_textbox = gr.Textbox(lines=10, label="Results") + + + + update_btn.click(fn=calculate_the_results, outputs=results_textbox) + + + demo.launch(debug=False, server_name="0.0.0.0", server_port=9911) \ No newline at end of file diff --git a/utils.py b/utils.py new file mode 100644 index 0000000000000000000000000000000000000000..5c5b5b939e5d00d45cc28d75317c29c35fd82073 --- /dev/null +++ b/utils.py @@ -0,0 +1,20 @@ +import matplotlib.pyplot as plt +import numpy as np + + +def string_to_image(text): + text = text.replace("_", " ").lower().replace(", ", "\n") + # Create a blank white square image + img = np.ones((220, 75, 3)) + + fig, ax = plt.subplots(figsize=(6, 2.25)) + ax.imshow(img, extent=[0, 1, 0, 1]) + ax.text(0.5, 0.75, text, fontsize=18, ha="center", va="center") + ax.set_xticks([]) + ax.set_yticks([]) + ax.set_xticklabels([]) + ax.set_yticklabels([]) + for spine in ax.spines.values(): + spine.set_visible(False) + + return fig