Spaces:
Sleeping
Sleeping
import gradio as gr | |
import tensorflow as tf | |
from huggingface_hub import from_pretrained_keras | |
# Load your trained models | |
model1 = from_pretrained_keras("ml-debi/EfficientNetB0-Food101") | |
model2 = from_pretrained_keras("ml-debi/EfficientNetB0-Food101") | |
with open('classes.txt', 'r') as f: | |
classes = [line.strip() for line in f] | |
# Add information about the models | |
model1_info = """ | |
### Model 1 Information | |
This model is based on the EfficientNetB0 architecture and was trained on the Food101 dataset. | |
""" | |
model2_info = """ | |
### Model 2 Information | |
This model is based on the EfficientNetB0 architecture and was trained on augmented data, providing improved generalization. | |
""" | |
def preprocess(image): | |
print("before resize", image.shape) | |
image = tf.image.resize(image, [224, 224]) | |
image = tf.expand_dims(image, axis=0) | |
print("After expanddims", image.shape) | |
return image | |
def predict(model_selection, image): | |
# Choose the model based on the dropdown selection | |
print("---model_selection---", model_selection) # | |
model = model1 if model_selection == "EfficentNetB0 Fine Tune" else model2 | |
print(model.summary()) | |
image = preprocess(image) | |
prediction = model.predict(image) | |
print("model prediction", prediction) | |
predicted_class = classes[int(tf.argmax(prediction, axis=1))] | |
confidence = tf.reduce_max(prediction).numpy() | |
return predicted_class, confidence | |
iface = gr.Interface( | |
fn=predict, | |
inputs=[gr.Dropdown(["EfficentNetB0 Fine Tune", "EfficentNetB0 Fine Tune Augmented"]), gr.Image()], | |
outputs=[gr.Textbox(label="Predicted Class"), gr.Textbox(label="Confidence")], | |
title="Transfer Learning Mini Project", | |
description=f"{model1_info}\n\n{model2_info}", | |
) | |
iface.launch() | |