Moodmate / app.py
Rudrockz's picture
Upload 4 files
d47d3fe verified
import gradio as gr
import tensorflow as tf
import numpy as np
from PIL import Image
# Load model
interpreter = tf.lite.Interpreter(model_path="model.tflite")
interpreter.allocate_tensors()
# Get input and output details
input_details = interpreter.get_input_details()
output_details = interpreter.get_output_details()
# Load labels
with open("labels.txt", "r") as f:
labels = [line.strip() for line in f.readlines()]
def predict(image):
# Preprocess image
image = image.resize((224, 224)) # adjust size if needed
image_array = np.array(image, dtype=np.float32) / 255.0
image_array = np.expand_dims(image_array, axis=0)
# Run inference
interpreter.set_tensor(input_details[0]['index'], image_array)
interpreter.invoke()
predictions = interpreter.get_tensor(output_details[0]['index'])[0]
# Map predictions to labels
results = {labels[i]: float(predictions[i]) for i in range(len(labels))}
return results
# Gradio interface
demo = gr.Interface(
fn=predict,
inputs=gr.Image(type="pil"),
outputs=gr.Label(num_top_classes=3),
title="Moodmate",
description="Upload an image to detect the mood."
)
if __name__ == "__main__":
demo.launch()