import gradio as gr import tensorflow as tf import numpy as np # Load your trained TensorFlow model model = tf.keras.models.load_model('best_model_weights.h5') # Load your saved model # Define a function to make predictions def classify_image(input_image): # Preprocess the input image (resize and normalize) input_image = tf.image.resize(input_image, (224, 224)) # Make sure to match your model's input size input_image = (input_image / 255.0) # Normalize to [0, 1] input_image = np.expand_dims(input_image, axis=0) # Add batch dimension # Make a prediction using your model prediction = model.predict(input_image) # Assuming your model outputs probabilities for two classes, you can return the class with the highest probability class_index = np.argmax(prediction) class_labels = ["Normal", "Cataract"] # Replace with your actual class labels predicted_class = class_labels[class_index] return predicted_class # Create a Gradio interface input_interface = gr.Interface( fn=classify_image, inputs="image", # Specify input type as "image" outputs="text" # Specify output type as "text" ) # Launch the Gradio app input_interface.launch()