Performance / app.py
Iralion's picture
Update app.py
75b1ab7 verified
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()