File size: 1,751 Bytes
a24e848
 
 
 
 
 
 
 
 
 
75b1ab7
a24e848
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
63fee2a
 
a24e848
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import joblib
import numpy as np
from keras.models import load_model
import gradio as gr
import pandas as pd
# Télécharger l'encoder
encoder = joblib.load('Extracurricular.joblib')
# Télécharger le sacler
scaler = joblib.load('scaler.joblib')
# Le modèle
model = load_model('DNN_model.keras')

def predict_func (hours_studied,   previous_scores,        extra_activities,       sleep_hours,    sample_question_pp):
  # encoder la valeur de Extracurriclar Activities using map
  extra_activities_series = pd.Series([extra_activities])
  extra_activities_encoded = extra_activities_series.map(encoder).iloc[0]

  # vecteur des valeurs numeriques
  x_new=np.array([hours_studied,        previous_scores,        extra_activities_encoded,       sleep_hours,    sample_question_pp]).reshape(1, -1)
  # Apply scaling
  x_new=scaler.transform(x_new)
  # Prediction
  y_pred = model.predict(x_new)
  return f"L'élève a une performance de {y_pred[0][0]:.2f}%"

demo=gr.Blocks(theme = 'NoCrypt/miku')
# Créer les inputs
inputs = [gr.Number(label='Hours_Studied'),
          gr.Number(label='Previous_Scores'),
          gr.Radio(choices=['Yes', 'No'], label='Extracurricular_Activities'),
          gr.Number(label='Sleep_Hours'),
          gr.Number(label='Sample_Question_Papers_Practiced')]
# Créer les outputs
outputs = gr.Textbox(label='Performance_Index')
# Créer l'interface 1
interface1 = gr.Interface(fn = predict_func,
                         inputs = inputs,
                         outputs = outputs,
                         title="Prédire la performence d'un élève"
                          )


# faire un tabbing des interfaces
with demo:
  gr.TabbedInterface([interface1], ['Simple Prediction'])

# lancer l'interface
demo.launch()