Spaces:
Build error
Build error
import math | |
import gradio as gr | |
import tensorflow as tf | |
configs = [ | |
{ | |
"model": "my_model_2.h5", "size": 512 | |
}, | |
{ | |
"model": "my_model.h5", "size": 224 | |
}, | |
] | |
config = configs[0] | |
new_model = tf.keras.models.load_model(config["model"]) | |
def classify_image(inp): | |
inp = inp.reshape((-1, config["size"], config["size"], 3)) | |
prediction = new_model.predict(inp).flatten() | |
print(prediction) | |
if len(prediction) > 1: | |
probability = 100 * math.exp(prediction[0]) / (math.exp(prediction[0]) + math.exp(prediction[1])) | |
else: | |
probability = round(100. / (1 + math.exp(-prediction[0])), 2) | |
if probability > 45: | |
return "Glaucoma", probability | |
if probability > 25: | |
return "Unclear", probability | |
return "Not glaucoma", probability | |
gr.Interface( | |
fn=classify_image, | |
inputs=gr.inputs.Image(shape=(config["size"], config["size"])), | |
outputs=[ | |
gr.outputs.Textbox(label="Label"), | |
gr.outputs.Textbox(label="Glaucoma probability (0 - 100)"), | |
], | |
examples=["001.jpg", "002.jpg", "225.jpg"], | |
flagging_options=["Correct label", "Incorrect label"], | |
allow_flagging="manual", | |
).launch() | |