jiawenchim's picture
Update app.py
d3ee645 verified
raw
history blame contribute delete
No virus
3.02 kB
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)