Spaces:
Sleeping
Sleeping
Commit
·
f60ff45
1
Parent(s):
ffe5b98
Minor bug fix
Browse files
app.py
CHANGED
@@ -27,7 +27,7 @@ test_loader = dataset.get_test_data_loader(**dataloader_args)
|
|
27 |
classes = ('plane', 'car', 'bird', 'cat', 'deer',
|
28 |
'dog', 'frog', 'horse', 'ship', 'truck')
|
29 |
|
30 |
-
cache_dict = {"
|
31 |
|
32 |
def resize_image_pil(image, new_width, new_height):
|
33 |
|
@@ -51,7 +51,7 @@ def resize_image_pil(image, new_width, new_height):
|
|
51 |
return resized
|
52 |
|
53 |
def inference(input_img, is_grad_cam=True, transparency = 0.5, target_layer_number = -1,
|
54 |
-
top_predictions=3,
|
55 |
input_img = resize_image_pil(input_img, 32, 32)
|
56 |
|
57 |
input_img = np.array(input_img)
|
@@ -86,22 +86,22 @@ def inference(input_img, is_grad_cam=True, transparency = 0.5, target_layer_numb
|
|
86 |
# Pick the top n predictions
|
87 |
top_n_confidences = dict(list(sorted_confidences.items())[:top_predictions])
|
88 |
|
89 |
-
if (
|
90 |
-
|
91 |
-
cache_dict["
|
92 |
-
cache_dict["
|
93 |
-
if
|
94 |
# Get the misclassified data from test dataset
|
95 |
misclassified_data = get_misclassified_data(model, device, test_loader)
|
96 |
# Plot the misclassified data
|
97 |
-
misclassified_images = display_cifar_misclassified_data(misclassified_data, number_of_samples=
|
98 |
-
cache_dict["
|
99 |
else:
|
100 |
-
|
101 |
else:
|
102 |
-
|
103 |
|
104 |
-
return classes[prediction[0].item()], visualization, top_n_confidences,
|
105 |
|
106 |
title = "CIFAR10 trained on ResNet18 Model with GradCAM"
|
107 |
description = "A simple Gradio interface to infer on ResNet model, and get GradCAM results"
|
@@ -124,13 +124,13 @@ demo = gr.Interface(
|
|
124 |
gr.Slider(-2, -1, value = -2, step=1, label="Which Layer?"),
|
125 |
gr.Slider(2, 10, value=3, step=1, label="Number of Top Classes"),
|
126 |
gr.Checkbox(label="Show Misclassified Images"),
|
127 |
-
gr.Slider(5, 40, value=10, step=5, label="Number of
|
128 |
],
|
129 |
outputs = [
|
130 |
"text",
|
131 |
gr.Image(width=256, height=256, label="Output"),
|
132 |
gr.Label(label="Top Classes"),
|
133 |
-
gr.Plot(label="
|
134 |
],
|
135 |
title = title,
|
136 |
description = description,
|
|
|
27 |
classes = ('plane', 'car', 'bird', 'cat', 'deer',
|
28 |
'dog', 'frog', 'horse', 'ship', 'truck')
|
29 |
|
30 |
+
cache_dict = {"misclassified_images": None, "is_misclassified_images": None, "num_misclassified_images": None}
|
31 |
|
32 |
def resize_image_pil(image, new_width, new_height):
|
33 |
|
|
|
51 |
return resized
|
52 |
|
53 |
def inference(input_img, is_grad_cam=True, transparency = 0.5, target_layer_number = -1,
|
54 |
+
top_predictions=3, is_misclassified_images=True, num_misclassified_images=10):
|
55 |
input_img = resize_image_pil(input_img, 32, 32)
|
56 |
|
57 |
input_img = np.array(input_img)
|
|
|
86 |
# Pick the top n predictions
|
87 |
top_n_confidences = dict(list(sorted_confidences.items())[:top_predictions])
|
88 |
|
89 |
+
if (is_misclassified_images != cache_dict["num_misclassified_images"] or
|
90 |
+
num_misclassified_images != cache_dict["num_misclassified_images"]):
|
91 |
+
cache_dict["num_misclassified_images"] = is_misclassified_images
|
92 |
+
cache_dict["num_misclassified_images"] = num_misclassified_images
|
93 |
+
if is_misclassified_images:
|
94 |
# Get the misclassified data from test dataset
|
95 |
misclassified_data = get_misclassified_data(model, device, test_loader)
|
96 |
# Plot the misclassified data
|
97 |
+
misclassified_images = display_cifar_misclassified_data(misclassified_data, number_of_samples=num_misclassified_images)
|
98 |
+
cache_dict["misclassified_images"] = misclassified_images
|
99 |
else:
|
100 |
+
misclassified_images = None
|
101 |
else:
|
102 |
+
misclassified_images = cache_dict["misclassified_images"]
|
103 |
|
104 |
+
return classes[prediction[0].item()], visualization, top_n_confidences, misclassified_images
|
105 |
|
106 |
title = "CIFAR10 trained on ResNet18 Model with GradCAM"
|
107 |
description = "A simple Gradio interface to infer on ResNet model, and get GradCAM results"
|
|
|
124 |
gr.Slider(-2, -1, value = -2, step=1, label="Which Layer?"),
|
125 |
gr.Slider(2, 10, value=3, step=1, label="Number of Top Classes"),
|
126 |
gr.Checkbox(label="Show Misclassified Images"),
|
127 |
+
gr.Slider(5, 40, value=10, step=5, label="Number of Misclassified Images")
|
128 |
],
|
129 |
outputs = [
|
130 |
"text",
|
131 |
gr.Image(width=256, height=256, label="Output"),
|
132 |
gr.Label(label="Top Classes"),
|
133 |
+
gr.Plot(label="Misclassified Images")
|
134 |
],
|
135 |
title = title,
|
136 |
description = description,
|