ma4389's picture
Upload 3 files
96bc662 verified
import gradio as gr
import numpy as np
from tensorflow.keras.models import load_model
from tensorflow.keras.preprocessing import image
# Load model
model = load_model("models.h5")
# Class labels
class_names = ['daisy', 'dandelion', 'rose', 'sunflower', 'tulip']
# Prediction function
def predict_flower(img):
img = img.resize((224, 224)) # Resize to match training input
img_array = image.img_to_array(img)
img_array = img_array / 255.0 # Normalize
img_array = np.expand_dims(img_array, axis=0) # Add batch dimension
predictions = model.predict(img_array)
class_index = np.argmax(predictions)
confidence = float(np.max(predictions))
return {class_names[i]: float(predictions[0][i]) for i in range(5)}
# Gradio interface
interface = gr.Interface(
fn=predict_flower,
inputs=gr.Image(type="pil"),
outputs=gr.Label(num_top_classes=5),
title="Flower Classifier",
description="Upload a flower image and the model will classify it as daisy, dandelion, rose, sunflower, or tulip.",
allow_flagging="never"
)
if __name__ == "__main__":
interface.launch()