Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import numpy as np | |
| import pickle | |
| # Load trained model | |
| model = pickle.load(open("model.pkl", "rb")) | |
| # Class labels | |
| classes = ["🌸 Setosa", "🌼 Versicolor", "🌺 Virginica"] | |
| # Prediction function | |
| def predict(sepal_length, sepal_width, petal_length, petal_width): | |
| try: | |
| features = np.array([[sepal_length, sepal_width, petal_length, petal_width]]) | |
| prediction = model.predict(features)[0] | |
| probabilities = model.predict_proba(features)[0] | |
| result = f"Prediction: {classes[prediction]}\n\n" | |
| result += "Confidence:\n" | |
| for i, prob in enumerate(probabilities): | |
| result += f"{classes[i]}: {round(prob*100, 2)}%\n" | |
| return result | |
| except Exception as e: | |
| return f"Error: {str(e)}" | |
| # Gradio UI | |
| with gr.Blocks(title="Iris Flower Classifier") as demo: | |
| gr.Markdown("## 🌸 Iris Flower Prediction App") | |
| gr.Markdown("Enter flower measurements to predict the species") | |
| with gr.Row(): | |
| sepal_length = gr.Number(label="Sepal Length (cm)") | |
| sepal_width = gr.Number(label="Sepal Width (cm)") | |
| with gr.Row(): | |
| petal_length = gr.Number(label="Petal Length (cm)") | |
| petal_width = gr.Number(label="Petal Width (cm)") | |
| predict_btn = gr.Button("Predict") | |
| output = gr.Textbox(label="Result") | |
| predict_btn.click( | |
| fn=predict, | |
| inputs=[sepal_length, sepal_width, petal_length, petal_width], | |
| outputs=output | |
| ) | |
| # Launch (important for Hugging Face) | |
| if __name__ == "__main__": | |
| demo.launch() |