gitfreder commited on
Commit
efd09b5
·
verified ·
1 Parent(s): bf4b5e6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +37 -1
app.py CHANGED
@@ -2,6 +2,41 @@ import gradio as gr
2
  from transformers import pipeline
3
  import torch
4
  from torchvision import transforms as T
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
 
6
  def calc_result_confidence (model_output):
7
  probs = torch.nn.functional.softmax(model_output, dim=1)
@@ -16,7 +51,8 @@ def downsyndrome_gradio_inference(img_file):
16
  T.ToTensor(),
17
  ])
18
  transform_image = infer_transform(img_file.convert('RGB')).float().unsqueeze(0)
19
- model = pipeline(task='image-classification', model='gitfreder/down-syndrome-detection')
 
20
  conf, cls = calc_result_confidence(model(transform_image))
21
 
22
  return {
 
2
  from transformers import pipeline
3
  import torch
4
  from torchvision import transforms as T
5
+ import torch.nn as nn
6
+ from huggingface_hub import PyTorchModelHubMixin
7
+
8
+ class DownSyndromeDetection(nn.Module, PyTorchModelHubMixin):
9
+ def __init__(self):
10
+ super(DownSyndromeDetection, self).__init__()
11
+ self.conv_layer_1 = nn.Conv2d(3, 16, kernel_size=3, stride=1, padding=1)
12
+ self.conv_layer_2 = nn.Conv2d(16, 32, kernel_size=3, stride=1, padding=1)
13
+ self.conv_layer_3 = nn.Conv2d(32, 64, kernel_size=3, stride=1, padding=1)
14
+ self.conv_layer_4 = nn.Conv2d(64, 128, kernel_size=3, stride=1, padding=1)
15
+ self.conv_layer_5 = nn.Conv2d(128, 256, kernel_size=3, stride=1, padding=1)
16
+ self.pooling_layer = nn.MaxPool2d(kernel_size=2)
17
+ self.fc_layer_1 = nn.Linear(16 * 28 * 28, 512)
18
+ self.fc_layer_2 = nn.Linear(512, 2)
19
+
20
+ def forward(self, x):
21
+ x = torch.tanh(self.conv_layer_1(x))
22
+ x = self.pooling_layer(x)
23
+ x = torch.tanh(self.conv_layer_2(x))
24
+ x = self.pooling_layer(x)
25
+ x = torch.tanh(self.conv_layer_3(x))
26
+ x = self.pooling_layer(x)
27
+ x = torch.tanh(self.conv_layer_4(x))
28
+ x = self.pooling_layer(x)
29
+ x = torch.tanh(self.conv_layer_5(x))
30
+ x = self.pooling_layer(x)
31
+ # flatten layer
32
+ x = x.view(x.size(0), -1)
33
+ x = torch.relu(self.fc_layer_1(x))
34
+ x = self.fc_layer_2(x)
35
+
36
+ x = torch.log_softmax(x, 1)
37
+
38
+ return x
39
+
40
 
41
  def calc_result_confidence (model_output):
42
  probs = torch.nn.functional.softmax(model_output, dim=1)
 
51
  T.ToTensor(),
52
  ])
53
  transform_image = infer_transform(img_file.convert('RGB')).float().unsqueeze(0)
54
+ #model = pipeline(task='image-classification', model='gitfreder/down-syndrome-detection')
55
+ model = DownSyndromeDetection().from_pretrained('gitfreder/down-syndrome-detection')
56
  conf, cls = calc_result_confidence(model(transform_image))
57
 
58
  return {