Update app.py
Browse files
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=
|
| 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)
|