|
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 |
|
|
|
|
|
|
|
|
|
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) |
|
|
|
] |
|
|
|
|
|
outputs_app = ["number"] |
|
|
|
|
|
weather_predictor_app = gr.Interface(fn=predict_energy, |
|
inputs=inputs_app, |
|
outputs=outputs_app, |
|
|
|
|
|
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) |