hernanhgm commited on
Commit
45c918e
1 Parent(s): a29d7e5

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +80 -0
app.py ADDED
@@ -0,0 +1,80 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from joblib import load
3
+ import numpy as np
4
+
5
+ def scaler_model_selector():
6
+ path = "E:\\duraton\\sexaje\\_dev\\Aguila real\\model_scaler"
7
+ file_model = path + '\\classifier.joblib'
8
+ file_scaler = path + '\\scaler.joblib'
9
+ model = load(file_model)
10
+ scaler = load(file_scaler)
11
+
12
+ return model, scaler
13
+
14
+
15
+ def calculate_means(L_izda, L_dcha):
16
+ """
17
+ Calcula la media entre "izda L" y "dcha L"
18
+ """
19
+ L_media = np.nanmean([L_izda, L_dcha])
20
+ return L_media
21
+
22
+ def process_inputs(measured_values):
23
+ '''
24
+ En la aplicación se introducen estos datos:
25
+ 'L izda'
26
+ 'L dcha'
27
+
28
+ El clasificador recibe:
29
+ L_media
30
+
31
+ Parameters
32
+ ----------
33
+ measured_values : iterable
34
+ valores introducidos por la aplicacion.
35
+
36
+ Returns
37
+ -------
38
+ processed_data : numpy array
39
+ array con los datos procesados y con forma (1,1)
40
+ para ser leidos por el clasificador
41
+
42
+ '''
43
+ L_izda, L_dcha = measured_values
44
+ L_media = calculate_means(L_izda, L_dcha)
45
+
46
+ processed_data = [L_media]
47
+ processed_data = np.array([processed_data]).reshape(1, -1)
48
+ return processed_data
49
+
50
+ def classifier(data, model, scaler):
51
+ data_scaled = scaler.transform(data)
52
+ pred = model.predict(data_scaled)
53
+
54
+ label = ['hembra', 'macho']
55
+ sexo = label[pred[0]]
56
+
57
+ return sexo
58
+
59
+
60
+ def complete_classification(*measured_values):
61
+ model, scaler = scaler_model_selector()
62
+ data = process_inputs(measured_values)
63
+ sexo = classifier(data, model, scaler)
64
+
65
+ return sexo
66
+
67
+ title = "Clasificador del sexo de águila real"
68
+ description = """
69
+ Esta aplicación se ha creado para clasificar el sexo de las águilas reales completamente desarrolladas.
70
+ El modelo de clasificación se ha entrenado con 31 hembras y 34 machos consiguiendo una precisión del 100%
71
+ """
72
+ demo = gr.Interface(
73
+ fn=complete_classification,
74
+ inputs=[gr.Number(label = 'L izda (mm)'),
75
+ gr.Number(label = 'L dcha (mm)')],
76
+ outputs="text",
77
+ title=title,
78
+ description=description
79
+ )
80
+ demo.launch()