davidmasip/glaucoma-gr
1
1import math2 3import gradio as gr4import tensorflow as tf5 6configs = [7 {8 "model": "my_model_2.h5", "size": 5129 },10 {11 "model": "my_model.h5", "size": 22412 },13]14 15config = configs[0]16 17new_model = tf.keras.models.load_model(config["model"])18 19def classify_image(inp):20 inp = inp.reshape((-1, config["size"], config["size"], 3))21 prediction = new_model.predict(inp).flatten()22 print(prediction)23 if len(prediction) > 1:24 probability = 100 * math.exp(prediction[0]) / (math.exp(prediction[0]) + math.exp(prediction[1]))25 else:26 probability = round(100. / (1 + math.exp(-prediction[0])), 2)27 if probability > 45:28 return "Glaucoma", probability29 if probability > 25:30 return "Unclear", probability31 return "Not glaucoma", probability32 33 34gr.Interface(35 fn=classify_image, 36 inputs=gr.inputs.Image(shape=(config["size"], config["size"])),37 outputs=[38 gr.outputs.Textbox(label="Label"),39 gr.outputs.Textbox(label="Glaucoma probability (0 - 100)"),40 ],41 examples=["001.jpg", "002.jpg", "225.jpg"],42 flagging_options=["Correct label", "Incorrect label"],43 allow_flagging="manual",44).launch()45 46 