AkashDataScience commited on
Commit
47b7204
·
1 Parent(s): 61e2a55

Add grad cam checkbox

Browse files
Files changed (1) hide show
  1. app.py +12 -8
app.py CHANGED
@@ -39,7 +39,7 @@ def resize_image_pil(image, new_width, new_height):
39
 
40
  return resized
41
 
42
- def inference(input_img, transparency = 0.5, target_layer_number = -1):
43
  input_img = resize_image_pil(input_img, 32, 32)
44
 
45
  input_img = np.array(input_img)
@@ -54,11 +54,14 @@ def inference(input_img, transparency = 0.5, target_layer_number = -1):
54
  o = softmax(outputs.flatten())
55
  confidences = {classes[i]: float(o[i]) for i in range(10)}
56
  _, prediction = torch.max(outputs, 1)
57
- target_layers = [model.layer2[target_layer_number]]
58
- cam = GradCAM(model=model, target_layers=target_layers)
59
- grayscale_cam = cam(input_tensor=input_img, targets=None)
60
- grayscale_cam = grayscale_cam[0, :]
61
- visualization = show_cam_on_image(org_img/255, grayscale_cam, use_rgb=True, image_weight=transparency)
 
 
 
62
  return classes[prediction[0].item()], visualization, confidences
63
 
64
  title = "CIFAR10 trained on ResNet18 Model with GradCAM"
@@ -67,8 +70,9 @@ examples = [["cat.jpg", 0.5, -1], ["dog.jpg", 0.5, -1]]
67
  demo = gr.Interface(
68
  inference,
69
  inputs = [
70
- gr.Image(width=256, height=256, label="Input Image"), gr.Slider
71
- (0, 1, value = 0.5, label="Overall Opacity of Image"),
 
72
  gr.Slider(-2, -1, value = -2, step=1, label="Which Layer?")
73
  ],
74
  outputs = [
 
39
 
40
  return resized
41
 
42
+ def inference(input_img, transparency = 0.5, is_grad_cam=True, target_layer_number = -1):
43
  input_img = resize_image_pil(input_img, 32, 32)
44
 
45
  input_img = np.array(input_img)
 
54
  o = softmax(outputs.flatten())
55
  confidences = {classes[i]: float(o[i]) for i in range(10)}
56
  _, prediction = torch.max(outputs, 1)
57
+ if is_grad_cam:
58
+ target_layers = [model.layer2[target_layer_number]]
59
+ cam = GradCAM(model=model, target_layers=target_layers)
60
+ grayscale_cam = cam(input_tensor=input_img, targets=None)
61
+ grayscale_cam = grayscale_cam[0, :]
62
+ visualization = show_cam_on_image(org_img/255, grayscale_cam, use_rgb=True, image_weight=transparency)
63
+ else:
64
+ visualization = None
65
  return classes[prediction[0].item()], visualization, confidences
66
 
67
  title = "CIFAR10 trained on ResNet18 Model with GradCAM"
 
70
  demo = gr.Interface(
71
  inference,
72
  inputs = [
73
+ gr.Image(width=256, height=256, label="Input Image"),
74
+ gr.Slider(0, 1, value = 0.5, label="Overall Opacity of Image"),
75
+ gr.Checkbox(label="Show GradCAM"),
76
  gr.Slider(-2, -1, value = -2, step=1, label="Which Layer?")
77
  ],
78
  outputs = [