Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import tensorflow as tf | |
| from huggingface_hub import from_pretrained_keras | |
| from tensorflow.keras import mixed_precision | |
| # Load your trained models | |
| #model1 = from_pretrained_keras("ml-debi/EfficientNetB0-Food101") | |
| #model2 = from_pretrained_keras("ml-debi/EfficientNetB0-Food101") | |
| model1 = from_pretrained_keras("ml-debi/EfficientNetV2S-Food101") | |
| with open('classes.txt', 'r') as f: | |
| classes = [line.strip() for line in f] | |
| # Add information about the models | |
| model1_info = """ | |
| ### Model Information | |
| Welcome to my Hugging Face space, where gastronomy meets technology! This space is dedicated to an image classifier that has been trained on the Food101 dataset. | |
| At the core of this classifier lies the EfficientNetV2S base model, which has been fine-tuned to enhance its ability to identify a broad spectrum of food items with great accuracy. | |
| While it may not be perfect, it’s a nice tool for culinary exploration. Enjoy your journey through the world of food! 🍽️ | |
| """ | |
| #model2_info = """ | |
| #### Model 2 Information | |
| #This model is based on the EfficientNetB0 architecture and was trained on augmented data, providing improved generalization. | |
| #""" | |
| examples = [["./examples/club_sandwich.jpg"], ["./examples/edamame.jpg"], ["./examples/eggs_benedict.jpg"]] | |
| 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(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()) | |
| if mixed_precision.global_policy() == "mixed_float16": | |
| mixed_precision.set_global_policy(policy="float32") | |
| image = preprocess(image) | |
| print(mixed_precision.global_policy()) | |
| prediction = model1.predict(image)[0] | |
| print("model prediction", prediction) | |
| confidences = {model1.config['id2label'][str(i)]: float(prediction[i]) for i in range(101)} | |
| return confidences | |
| iface = gr.Interface( | |
| fn=predict, | |
| inputs=[gr.Image()], | |
| outputs=[gr.Label(num_top_classes=5)], | |
| title="Food Vision Mini Project", | |
| description=f"{model1_info}\n", | |
| examples=examples | |
| ) | |
| iface.launch() | |