fruits / app.py
friesti1's picture
Update app.py
3524a8b verified
raw
history blame contribute delete
No virus
1.41 kB
import gradio as gr
import tensorflow as tf
from PIL import Image
import numpy as np
labels = ['Banana', 'Coconut', 'Eggplant', 'Mango', 'Melon', 'Orange', 'Pineapple', 'Watermelon']
def predict_pokemon_type(uploaded_file):
if uploaded_file is None:
return "No file uploaded.", None, "No prediction"
model = tf.keras.models.load_model('fruits-xception-model.keras')
# Load the image from the file path
with Image.open(uploaded_file) as img:
img = img.resize((150, 150))
img_array = np.array(img)
prediction = model.predict(np.expand_dims(img_array, axis=0))
# Identify the most confident prediction
confidences = {labels[i]: np.round(float(prediction[0][i]), 2) for i in range(len(labels))}
return img, confidences
# Define the Gradio interface
iface = gr.Interface(
fn=predict_pokemon_type, # Function to process the input
inputs=gr.File(label="Upload File"), # File upload widget
outputs=["image", "text"], # Output types for image and text
title="Fruit Classifier", # Title of the interface
description="Upload a picture of a Fruit (preferably a Banana, Coconut, Eggplant, Mango, Melon, Orange, Pineapple or Watermelon) to see what fruit it is and the models confidence level. Accuracy: 0.8997 - Loss: 0.4229 on Test Data" # Description of the interface
)
# Launch the interface
iface.launch()