pokemon1 / app.py
looiic's picture
Upload folder using huggingface_hub
32621ad verified
import gradio as gr
import tensorflow as tf
from PIL import Image
import numpy as np
# Load the pre-trained model
model = tf.keras.models.load_model('pokemon_transferlearning.keras')
def classify_image(img):
if isinstance(img, np.ndarray):
img = Image.fromarray(img.astype('uint8'), 'RGB')
# Preprocess the image to fit the model's input requirements
img = img.resize((150, 150)) # Resize the image using PIL, which is intended here
img_array = np.array(img) # Convert the resized PIL image to a numpy array
img_array = img_array / 255.0 # Normalize pixel values to [0, 1]
img_array = np.expand_dims(img_array, axis=0) # Expand dimensions to fit model input shape
# Make prediction
prediction = model.predict(img_array)
# prediction = np.round(float(tf.sigmoid(prediction)), 2)
# p_cat = (1 - prediction)
# p_dog = prediction
# return {'cat': p_cat, 'dog': p_dog}
print(prediction)
probabilities = tf.sigmoid(prediction).numpy() # Convert tensor to numpy array if using
# Formatting the probabilities
class_names = ['Hitchoman', 'Pikachu', 'Charmeleon']
results = {class_names[i]: float(prediction[0][i]) for i in range(3)} # Convert each probability to float
return results
# Create Gradio interface
iface = gr.Interface(fn=classify_image,
inputs=gr.Image(),
outputs=gr.Label(num_top_classes=3),
title="Pokemon Classifier",
description="Upload an image of a pokemon classify.")
# Launch the application
iface.launch(share=True)