# Fonction de prédiction import gradio as gr import joblib import pandas as pd import numpy as np from keras.models import load_model # importer les encodeurs #importer le cat_data cat_data_columns = joblib.load('cat_data_columns.joblib') encoder = joblib.load('encoder.joblib') # importer le modèle model = load_model('DNN_model.h5') # importer le scaler scaler = joblib.load('scaler.joblib') #fonction de predictions simple def pred(HS, PS, EA, SH, SQPP): EA = encoder.transform([EA])[0] x_new = np.array([HS, PS, EA, SH, SQPP]) x_new = x_new.reshape(1, -1) x_new = scaler.transform(x_new) y_pred = model.predict(x_new) y_pred = np.round(y_pred[0], 2)[0] return f"la performance de cet etudiant est: {str(y_pred)}" def pred_csv(file): df = pd.read_csv(file) prediction = [] for row in df.iloc[:, :].values: prediction.append(pred(row[0], row[1], encoder.transform([row[2][0]]), row[3])) df['Performance Index'] = prediction df.to_csv('perfo_etud.csv', index= False) return 'perfo_etud.csv' demo = gr.Blocks(theme= gr.themes.Origin()) 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') ] outputs = gr.Textbox(label='Performance Index') interface1 = gr.Interface(fn= pred, inputs= inputs, outputs= outputs, title = "Predire les performance de l'etudiant en saisant les données", description= """Cette modele permet de predire les performation d'un etudiant a partir de quelques un de ces informations""" ) interface2 = gr.Interface( fn = pred_csv, inputs = gr.File(label= 'Telecharger le document csv'), outputs= gr.File(label= 'Telecharger le documents csv'), title= "Predictions multiple en inserant un fichier csv", description= """Cette modele permet de predire les performation d'un etudiant a partir de quelques un de ces informations""" ) with demo: gr.TabbedInterface([interface1, interface2], ['Predictions simple', 'Predictions multiple']) demo.launch()