Vivekan's picture
Update app.py
d2d4ff5 verified
import gradio as gr
import pickle
import matplotlib.pyplot as plt
import numpy as np
import os
import PIL
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
from keras.models import load_model
img_height, img_width = 180, 180
# Load the model without compilation
model_flower = keras.models.load_model('model_flower.h5', compile=False)
# Recompile the model with valid arguments
model_flower.compile(
optimizer='adam',
loss=keras.losses.SparseCategoricalCrossentropy(from_logits=True, reduction='sum_over_batch_size'),
metrics=['accuracy']
)
class_names = ['daisy', 'dandelion', 'roses', 'sunflowers', 'tulips']
def predict_image(img):
img_resized = tf.image.resize(img, (img_height, img_width))
img_array = np.expand_dims(img_resized, axis=0) # Add batch dimension
prediction = model_flower.predict(img_array)[0]
return {class_names[i]: float(prediction[i]) for i in range(5)}
image = gr.Image(image_mode='RGB')
label = gr.Label(num_top_classes=5)
gr.Interface(fn=predict_image, inputs=image, outputs=label).launch()