| import gradio as gr |
| from tensorflow.keras.models import load_model |
| from PIL import Image |
| import numpy as np |
|
|
| |
| model = load_model("shap efficient B0 multi.h5") |
|
|
| |
| model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) |
|
|
| |
| def preprocess_image(image): |
| |
| image = image.resize((400, 400)) |
| |
| image = np.array(image) / 255.0 |
| return np.expand_dims(image, axis=0) |
|
|
| |
| def predict(image): |
| |
| preprocessed = preprocess_image(image) |
| |
| predictions = model.predict(preprocessed) |
| |
| |
| class_labels = ['No DR', 'Mild', 'Moderate', 'Severe', 'Proliferative DR'] |
| |
| |
| prediction_dict = {class_labels[i]: float(predictions[0][i]) for i in range(len(class_labels))} |
| |
| |
| predicted_class = class_labels[np.argmax(predictions, axis=-1)[0]] |
| return predicted_class, prediction_dict |
|
|
| |
| interface = gr.Interface( |
| fn=predict, |
| inputs=gr.Image(type="pil"), |
| outputs=[gr.Text(), gr.Label()] |
| ) |
|
|
| |
| interface.launch(share=True) |
|
|