khan994 commited on
Commit
3a01016
·
1 Parent(s): 0dcb715

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +1 -37
app.py CHANGED
@@ -12,42 +12,6 @@ def classify_img(img):
12
  pred,idx,probs=learn.predict(img)
13
  return dict(zip(categories, map(float, probs)))
14
 
15
- def gradcam(img_create):
16
- pred,idx,probs=learn.predict(img)
17
-
18
- x,= first(dls_augmented.test_dl([img]))
19
- hook_output = Hook()
20
- hook = learn.model[0].register_forward_hook(hook_output.hook_func)
21
- with torch.no_grad(): output = learn.model.eval()(x)
22
- act = hook_output.stored[0]
23
- hook.remove()
24
-
25
- input_size=act.shape[0]
26
- out_size=learn.model[1][-1].in_features
27
- kernel_size=act.shape[1]
28
- a=act
29
- new_act=tensor(np.zeros((out_size,kernel_size,kernel_size)))
30
- sum=tensor(np.zeros((1,kernel_size,kernel_size)))
31
- for i in range(0,input_size,4):
32
- sum=tensor(np.zeros((1,kernel_size,kernel_size))).to('cuda')
33
- for j in range(i,i+4):
34
- sum=sum+act[j,:,:]
35
- new_act[int(i/4),:,:]=sum/4
36
- cam_map = torch.einsum('ck,kij->cij', learn.model[1][-1].weight, new_act.to('cuda'))
37
-
38
- pred_scores=[ round(elem, 2)*100 for elem in learn.predict(img_create)[2].tolist() ]
39
- preds = dict(sorted({labels[i]: [ round(elem, 2)*100 for elem in learn.predict(img_create)[2].tolist() ][i] for i in range(len(labels))}.items(), key=lambda x:x[1], reverse=True))
40
-
41
- x_dec = TensorImage(dls_augmented.train.decode((x,))[0][0])
42
- fig,ax = plt.subplots()
43
- x_dec.show(ctx=ax)
44
- ax.imshow(cam_map[1].detach().cpu(), alpha=0.6, extent=(0,128,128,0), interpolation='bilinear', cmap='magma');
45
- im="gcam.jpg"
46
- fig.savefig(im)
47
-
48
- return (dict(zip(categories, map(float, probs))), im)
49
-
50
-
51
  image=gr.inputs.Image(shape=(128,128))
52
  label=gr.outputs.Label()
53
  examples_=[]
@@ -59,6 +23,6 @@ examples=["filibe-1-1.jpg",
59
  "varna-1-1.jpg"]
60
 
61
 
62
- demo = gr.Interface(fn=gradcam, inputs=image, outputs=[label,image], examples=examples)
63
 
64
  demo.launch(inline=False)
 
12
  pred,idx,probs=learn.predict(img)
13
  return dict(zip(categories, map(float, probs)))
14
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  image=gr.inputs.Image(shape=(128,128))
16
  label=gr.outputs.Label()
17
  examples_=[]
 
23
  "varna-1-1.jpg"]
24
 
25
 
26
+ demo = gr.Interface(fn=classify_img, inputs=image, outputs=[label,image], examples=examples)
27
 
28
  demo.launch(inline=False)