import os import pickle import tensorflow as tf import gradio as gr import pandas as pd import numpy as np from sklearn.preprocessing import StandardScaler data_heading = ['longitude', 'latitude', 'housing_median_age', 'total_rooms', 'total_bedrooms', 'population', 'households', 'median_income', 'median_house_value'] # Model and scaler loading with open("./model/scaler_sklearn.pkl", "rb") as f: scaler = pickle.load(f) loaded_model = tf.keras.saving.load_model('./model/house_value_model.keras') def test_ml_model(longitude, latitude, housing_median_age, total_rooms, total_bedrooms, population, households, median_income, median_house_value): df_test = pd.DataFrame(data=[[longitude, latitude, housing_median_age, total_rooms, total_bedrooms, population, households, median_income, median_house_value]], columns=data_heading) df_test_norm = pd.DataFrame(scaler.fit_transform(df_test), columns=data_heading) features = {name:np.array(value) for name, value in df_test_norm.items()} result = loaded_model.predict(features) if result['dense'][0][0] > 0.5: return 'Prediction: Houses in this neighborhood are above average price.' return 'Prediction: Houses in this neighborhood are below average price.' demo = gr.Interface(fn=test_ml_model, inputs=[gr.Number(value=0.0), gr.Number(value=0.0), gr.Number(value=0.0), gr.Number(value=0.0), gr.Number(value=0.0), gr.Number(value=0.0), gr.Number(value=0.0), gr.Number(value=0.0), gr.Number(value=0.0)], outputs="text", description="It will help to classifiy the houses in this neighborhood above a avaerage price or not.", title='Classifier') demo.launch()