Text_Vison / app.py
sehaj13's picture
Update app.py
50b9d16 verified
import gradio as gr
import joblib
import numpy as np
# Load the trained model
model = joblib.load("decision_tree_regressor_model.pkl")
# Define the prediction function
def predict_rpm(
TM, U_percent, Thin, Thick, Neps, IPI, HI, ARKM, RKM_CV, MRKM, Elongation, Elon_CV
):
features = np.array([
TM, U_percent, Thin, Thick, Neps, IPI, HI, ARKM, RKM_CV, MRKM, Elongation, Elon_CV
]).reshape(1, -1)
prediction = model.predict(features)
return round(prediction[0], 2)
# Define sliders for each feature
sliders = [
gr.Slider(minimum=3.8, maximum=4.2, step=0.1, label="TM"),
gr.Slider(minimum=9.42, maximum=10.16, step=0.01, label="U_percent"),
gr.Slider(minimum=0.0, maximum=4, step=1, label="Thin"),
gr.Slider(minimum=18.0, maximum=40, step=1, label="Thick"),
gr.Slider(minimum=56, maximum=101.0, step=1, label="Neps"),
gr.Slider(minimum=89, maximum=122.0, step=1, label="IPI"),
gr.Slider(minimum=3.51, maximum=4.45, step=0.1, label="HI"),
gr.Slider(minimum=18.7, maximum=20.24, step=0.1, label="ARKM"),
gr.Slider(minimum=6.89, maximum=8.6, step=0.1, label="RKM_CV"),
gr.Slider(minimum=13.55, maximum=15.95, step=0.1, label="MRKM"),
gr.Slider(minimum=3.75, maximum=5.52, step=0.1, label="Elongation"),
gr.Slider(minimum=8.04, maximum=10.54, step=0.1, label="Elon_CV"),
]
with gr.Blocks() as demo:
gr.Markdown("## Loom RPM Prediction App")
gr.Markdown("Adjust sliders for 12 features to predict Loom RPM using a Decision Tree Regressor.")
with gr.Row():
sliders_row1 = sliders[0:4]
for slider in sliders_row1:
slider.render()
with gr.Row():
sliders_row2 = sliders[4:8]
for slider in sliders_row2:
slider.render()
with gr.Row():
sliders_row3 = sliders[8:12]
for slider in sliders_row3:
slider.render()
output = gr.Number(label="Predicted RPM")
predict_btn = gr.Button("Predict RPM")
predict_btn.click(
fn=predict_rpm,
inputs=sliders,
outputs=output
)
# Create the interface
# demo = gr.Interface(
# fn=predict_rpm,
# inputs=sliders,
# outputs=gr.Number(label="Predicted RPM"),
# title="RPM Prediction App",
# description="Adjust the sliders for each of the 12 features to predict the RPM."
# )
if __name__ == "__main__":
demo.launch()