Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -66,6 +66,7 @@ def show_gradcam_images(n, a, b):
|
|
66 |
images_with_gradcam = []
|
67 |
for image_path, label in images:
|
68 |
image = Image.open(image_path)
|
|
|
69 |
image_array = np.asarray(image)
|
70 |
visualization = inference(image_array, "Yes", a, b)[-1]
|
71 |
images_with_gradcam.append((visualization, label))
|
@@ -140,55 +141,56 @@ def change_mygrad_view(choice):
|
|
140 |
return grad_or_not.update(visible=False)
|
141 |
|
142 |
|
143 |
-
with gr.Blocks(theme='
|
144 |
gr.Markdown("""
|
145 |
|
146 |
-
# CustomResNet with GradCAM
|
147 |
|
148 |
### A simple Gradio interface to infer on CustomResNet model and get GradCAM results
|
149 |
|
150 |
""")
|
151 |
-
gr.Markdown("#
|
152 |
-
gr.Markdown("## Grad-CAM")
|
153 |
with gr.Row():
|
154 |
grad_yes_no = gr.Radio(choices = ["Yes", "No"], value="No", label="Do you want to see GradCAM images")
|
155 |
with gr.Row(visible=False) as grad_block:
|
156 |
with gr.Column(scale=1):
|
157 |
-
input_grad = gr.Slider(1, 10, value =
|
158 |
input_overlay = gr.Radio(choices = ["Yes", "No"], value="No", label="Do you want to configure gradcam")
|
159 |
with gr.Row():
|
160 |
clear_btn3 = gr.ClearButton()
|
161 |
submit_btn3 = gr.Button("Submit")
|
162 |
with gr.Column(scale=1):
|
163 |
-
|
164 |
-
|
165 |
with gr.Row(visible=False) as grad1_block:
|
166 |
gallery3 = gr.Gallery(
|
167 |
label="GradCAM images", show_label=True, elem_id="gallery3"
|
168 |
).style(columns=[4], rows=[3], object_fit="contain", height="auto")
|
169 |
|
170 |
-
submit_btn3.click(fn=show_gradcam_images, inputs=[input_grad,
|
171 |
-
clear_btn3.click(lambda: [None, None, None, None, None], outputs=[input_grad, input_grad,
|
172 |
-
input_overlay.change(fn=change_textbox, inputs=input_overlay, outputs=[
|
173 |
grad_yes_no.change(fn=change_grad_view, inputs=grad_yes_no, outputs=[grad_block])
|
174 |
|
175 |
|
176 |
###############################################
|
177 |
|
178 |
|
179 |
-
gr.Markdown("## Misclassification")
|
180 |
with gr.Row():
|
181 |
miscls_yes_no = gr.Radio(choices = ["Yes", "No"], value="No", label="Do you want to see misclassified images")
|
182 |
with gr.Row(visible=False) as miscls_block:
|
183 |
with gr.Column(scale=1):
|
184 |
input_miscn = gr.Slider(1, 10, value = 3, step=1, label="Number of misclassified images to view")
|
185 |
-
|
186 |
-
clear_btn2 = gr.ClearButton()
|
187 |
-
submit_btn2 = gr.Button("Submit")
|
188 |
with gr.Column(scale=1):
|
189 |
input_grad2 = gr.Radio(choices = ["Yes", "No"], value="No", label="Do you want to overlay gradcam")
|
190 |
input_slider21 = gr.Slider(0, 1, value = 0.5, label="Opacity of GradCAM", interactive=True, visible=False)
|
191 |
input_slider22 = gr.Slider(1, 3, value = 3, step=1, label="Which Layer?", interactive=True, visible=False)
|
|
|
|
|
|
|
192 |
with gr.Column(visible=False) as miscls1_block:
|
193 |
gallery = gr.Gallery(
|
194 |
label="Misclassified images", show_label=True, elem_id="gallery"
|
@@ -204,18 +206,19 @@ with gr.Blocks(theme='abidlabs/dracula_revamped') as demo:
|
|
204 |
###############################################
|
205 |
|
206 |
|
207 |
-
gr.Markdown("##
|
208 |
with gr.Row():
|
209 |
with gr.Column(scale=1):
|
210 |
input_image = gr.Image(shape=(32, 32), label="Input Image")
|
211 |
input_topk = gr.Slider(1, 10, value = 3, step=1, label="Top N Classes")
|
212 |
input_slider_grad_or_not = gr.Radio(choices = ["Yes", "No"], value="No", label="Do you want to overlay GradCAM output")
|
213 |
-
with gr.Column(visible=False) as grad_or_not:
|
214 |
-
input_slider1 = gr.Slider(0, 1, value = 0.5, label="Opacity of GradCAM")
|
215 |
-
input_slider2 = gr.Slider(1, 3, value = 3, step=1, label="Which Layer?")
|
216 |
with gr.Row():
|
217 |
clear_btn = gr.ClearButton()
|
218 |
submit_btn = gr.Button("Submit")
|
|
|
|
|
|
|
|
|
219 |
with gr.Column(scale=1):
|
220 |
output_classes = gr.Label(num_top_classes=3)
|
221 |
output_image = gr.Image(shape=(32, 32), label="Output").style(width=128, height=128)
|
|
|
66 |
images_with_gradcam = []
|
67 |
for image_path, label in images:
|
68 |
image = Image.open(image_path)
|
69 |
+
image = image.resize((32, 32))
|
70 |
image_array = np.asarray(image)
|
71 |
visualization = inference(image_array, "Yes", a, b)[-1]
|
72 |
images_with_gradcam.append((visualization, label))
|
|
|
141 |
return grad_or_not.update(visible=False)
|
142 |
|
143 |
|
144 |
+
with gr.Blocks(theme='xiaobaiyuan/theme_brief') as demo:
|
145 |
gr.Markdown("""
|
146 |
|
147 |
+
# CustomResNet model with GradCAM
|
148 |
|
149 |
### A simple Gradio interface to infer on CustomResNet model and get GradCAM results
|
150 |
|
151 |
""")
|
152 |
+
#gr.Markdown("# Model")
|
153 |
+
gr.Markdown("## Grad-CAM Images")
|
154 |
with gr.Row():
|
155 |
grad_yes_no = gr.Radio(choices = ["Yes", "No"], value="No", label="Do you want to see GradCAM images")
|
156 |
with gr.Row(visible=False) as grad_block:
|
157 |
with gr.Column(scale=1):
|
158 |
+
input_grad = gr.Slider(1, 10, value = 5, step=1, label="Number of GradCAM images to view")
|
159 |
input_overlay = gr.Radio(choices = ["Yes", "No"], value="No", label="Do you want to configure gradcam")
|
160 |
with gr.Row():
|
161 |
clear_btn3 = gr.ClearButton()
|
162 |
submit_btn3 = gr.Button("Submit")
|
163 |
with gr.Column(scale=1):
|
164 |
+
input_slider1 = gr.Slider(0, 1, value = 0.5, label="Opacity of GradCAM", interactive=True, visible=False)
|
165 |
+
input_slider2 = gr.Slider(1, 3, value = 3, step=1, label="Which Layer?", interactive=True, visible=False)
|
166 |
with gr.Row(visible=False) as grad1_block:
|
167 |
gallery3 = gr.Gallery(
|
168 |
label="GradCAM images", show_label=True, elem_id="gallery3"
|
169 |
).style(columns=[4], rows=[3], object_fit="contain", height="auto")
|
170 |
|
171 |
+
submit_btn3.click(fn=show_gradcam_images, inputs=[input_grad, input_slider1, input_slider2], outputs = [grad1_block, gallery3])
|
172 |
+
clear_btn3.click(lambda: [None, None, None, None, None], outputs=[input_grad, input_grad, input_slider1, input_slider2, gallery3])
|
173 |
+
input_overlay.change(fn=change_textbox, inputs=input_overlay, outputs=[input_slider1, input_slider2])
|
174 |
grad_yes_no.change(fn=change_grad_view, inputs=grad_yes_no, outputs=[grad_block])
|
175 |
|
176 |
|
177 |
###############################################
|
178 |
|
179 |
|
180 |
+
gr.Markdown("## Misclassification Images")
|
181 |
with gr.Row():
|
182 |
miscls_yes_no = gr.Radio(choices = ["Yes", "No"], value="No", label="Do you want to see misclassified images")
|
183 |
with gr.Row(visible=False) as miscls_block:
|
184 |
with gr.Column(scale=1):
|
185 |
input_miscn = gr.Slider(1, 10, value = 3, step=1, label="Number of misclassified images to view")
|
186 |
+
|
|
|
|
|
187 |
with gr.Column(scale=1):
|
188 |
input_grad2 = gr.Radio(choices = ["Yes", "No"], value="No", label="Do you want to overlay gradcam")
|
189 |
input_slider21 = gr.Slider(0, 1, value = 0.5, label="Opacity of GradCAM", interactive=True, visible=False)
|
190 |
input_slider22 = gr.Slider(1, 3, value = 3, step=1, label="Which Layer?", interactive=True, visible=False)
|
191 |
+
with gr.Row():
|
192 |
+
clear_btn2 = gr.ClearButton()
|
193 |
+
submit_btn2 = gr.Button("Submit")
|
194 |
with gr.Column(visible=False) as miscls1_block:
|
195 |
gallery = gr.Gallery(
|
196 |
label="Misclassified images", show_label=True, elem_id="gallery"
|
|
|
206 |
###############################################
|
207 |
|
208 |
|
209 |
+
gr.Markdown("## Input Interface ")
|
210 |
with gr.Row():
|
211 |
with gr.Column(scale=1):
|
212 |
input_image = gr.Image(shape=(32, 32), label="Input Image")
|
213 |
input_topk = gr.Slider(1, 10, value = 3, step=1, label="Top N Classes")
|
214 |
input_slider_grad_or_not = gr.Radio(choices = ["Yes", "No"], value="No", label="Do you want to overlay GradCAM output")
|
|
|
|
|
|
|
215 |
with gr.Row():
|
216 |
clear_btn = gr.ClearButton()
|
217 |
submit_btn = gr.Button("Submit")
|
218 |
+
with gr.Column(visible=False) as grad_or_not:
|
219 |
+
input_slider1 = gr.Slider(0, 1, value = 0.5, label="Opacity of GradCAM")
|
220 |
+
input_slider2 = gr.Slider(1, 3, value = 3, step=1, label="Which Layer?")
|
221 |
+
|
222 |
with gr.Column(scale=1):
|
223 |
output_classes = gr.Label(num_top_classes=3)
|
224 |
output_image = gr.Image(shape=(32, 32), label="Output").style(width=128, height=128)
|