jiawenchim's picture
Update app.py
d3ee645 verified
import gradio as gr
import numpy as np
import os
from joblib import load
from tensorflow.keras.models import load_model
def predict_energy(f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13):
weather_input = [f1,f2,f3,f4,f5,f6]
history_input =[f7,f8,f9,f10,f11,f12,f13]
weather_input_array = np.array(weather_input).reshape(1,-1)
history_input_array = np.array(history_input).reshape(1,-1)
scaler = load("scaler.joblib")
scaled_weather_input_array = scaler.transform(weather_input_array)
input_feature = np.concatenate((scaled_weather_input_array[0],history_input_array[0]))
model = load_model('history_7_future_1.h5')
output = model.predict(input_feature.reshape(1,1,-1))
output = output[0][0]
return output
# Interface Inputs
inputs_app = [gr.Slider(0,12, step=1, label='Month', value=11),
gr.Slider(0,23, step=1, label='Hour', value=20),
gr.Slider(-4,33, step=1, label='Temperature', value=8.69),
gr.Slider(0.2,1, step=0.5, label='Humidity', value=0.93),
gr.Slider(0.04,15, step=0.5, label='windSpeed', value=2.96),
gr.Slider(0,1, step=1, label='Holiday = 1', value=0),
gr.Slider(0,1, step=0.005, label='t-7 energy consumption', value=0.482),
gr.Slider(0,1, step=0.005, label='t-6 energy consumption', value=0.476),
gr.Slider(0,1, step=0.005, label='t-5 energy consumption', value=0.377),
gr.Slider(0,1, step=0.005, label='t-4 energy consumption', value=0.374),
gr.Slider(0,1, step=0.005, label='t-3 energy consumption', value=0.475),
gr.Slider(0,1, step=0.005, label='t-2 energy consumption', value=0.523),
gr.Slider(0,1, step=0.005, label='t-1 energy consumption', value=0.774)
]
#Interface Output
outputs_app = ["number"]
# Building the Gradio Interface
weather_predictor_app = gr.Interface(fn=predict_energy,
inputs=inputs_app,
outputs=outputs_app,
# allow_flagging="manual",
# live=True,
examples = [[2,23,3.93,0.85,2.75,0,0.428821,0.507056,0.658782,0.722878,0.694360,0.657011,0.587121],
[8,15,23.34,0.45,5.32,0,0.341136,0.337360,0.332931,0.336212,0.338439,0.327198,0.316899],
[12,8,2.10,0.96,1.34,0.0,0.327180,0.278838,0.253315,0.247601,0.262393,0.326879,0.458636]],
title = "Average Energy Consumption (per household) Prediction using Custom LSTM (London)",
description="Enter parameters using sliders provided to predict the next hour's energy consumption. \n Answer for demo's data are available under Files -> samples.csv -> var1(t).")
weather_predictor_app.launch(share=True)