| | 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) |
| |
|