gassmdav's picture
Upload 2 files
c71f4db verified
import gradio as gr
import tensorflow as tf
from PIL import Image
import numpy as np
# Load the pre-trained Fashion MNIST model
model_path = "kia_fashion_mnist_keras_model.h5"
model = tf.keras.models.load_model(model_path)
# Labels for Fashion MNIST
labels = [
'T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',
'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot'
]
def predict_fashion(image):
# Convert image to grayscale if not already and resize
image = Image.fromarray(image).convert('L').resize((28, 28))
# Normalize the image
image = np.array(image) / 255.0
# Reshape for model input
image = image.reshape(1, 28, 28, 1)
# Make a prediction
predictions = model.predict(image)
prediction = np.argmax(predictions, axis=1)[0]
confidence = np.max(predictions)
# Prepare the output
result = f"Predicted category: {labels[prediction]} with confidence: {confidence:.2f}"
return result
# Create Gradio interface
input_image = gr.Image(image_mode='L')
output_label = gr.Label()
interface = gr.Interface(fn=predict_fashion,
inputs=input_image,
outputs=output_label,
examples=["images/0.png", "images/1.png", "images/2.png", "images/3.png"],
title="Fashion MNIST Classifier",
description="Drag and drop an image or select an example below to predict the fashion category.")
# Launch the interface
interface.launch()