diallo62-gs's picture
Create app.py
c8ed727 verified
# fonction de prédiction
import gradio as gr
import joblib
import pandas as pd
import numpy as np
from keras.models import load_model
# Import de la liste des noms des variables catégorielles
cat_encoder_cols = joblib.load('Extracurricular Activities_encoder.joblib')
# Importer les encodeurs
encoder = joblib.load('Extracurricular Activities_encoder.joblib')
# Importer le modèle
model = load_model('DNN_model.h5')
# Importer le scaler
scaler = joblib.load('scaler.joblib')
# fonction de prédiction simple
def prediction_func(Hours_Studied,Previous_Scores, Extracurricular, Sleep_Hours, Sample):
# encoder les valeurs
Extracurricular = encoder.transform([Extracurricular])[0]
# créer la nouvelle valeur
x_new = np.array([Hours_Studied,Previous_Scores,Extracurricular, Sleep_Hours, Sample]).reshape(1, -1)
# normaliser les valeurs
x_new = scaler.transform(x_new)
# prédire la valeur
y_pred = np.round(model.predict(x_new))
# retourner
return y_pred[0][0]
# créer les inputs
inputs = [gr.Number(label='Hours Studied'),
gr.Number(label='Previous Scores'),
gr.Radio(['Yes', 'No'], label="Extracurricular Activities"),
gr.Number(label='Sleep Hours'),
gr.Number(label='Sample Question Paper'),
]
# créer les outputs
outputs = gr.Textbox(label = 'Performance de l\'eleve ')
# interface 1
Interface1 = gr.Interface(fn = prediction_func,
inputs = inputs,
outputs = outputs,
title = 'Preduction de la Performance d\'un Eleve',
description= 'Ce modèle d\'apprentissage automatique nous predit la performance des eleves en fonction Heures étudiées, des Scores précédents, des Activités parascolaires, des Heures de sommeil, des Exemples de sujets d\'examen traités .',
theme='shivi/calm_seafoam')
# Interface 2
Interface2 = gr.Interface(fn = prediction_func,
inputs = gr.File(label='Charger un fichier csv'),
outputs = gr.File(label='Telecharger le fivhier csv'),
title = 'Preduction de la Performance d\'un Eleve',
description= 'Ce modèle d\'apprentissage automatique nous predit la performance des eleves en fonction Heures étudiées, des Scores précédents, des Activités parascolaires, des Heures de sommeil, des Exemples de sujets d\'examen traités .',
theme='shivi/calm_seafoam')
# faire un tabbing des interfaces
demo = gr.TabbedInterface([Interface1, Interface2], ['Simple Preduction', 'Preduction multiple'])
demo.launch()