File size: 1,250 Bytes
adf2111
7ebdd96
75fd37c
08cbfae
7ebdd96
 
 
 
 
 
 
 
 
 
 
 
 
08cbfae
7708ef9
 
08cbfae
7708ef9
 
 
 
08cbfae
7708ef9
 
c8fb571
7708ef9
 
c8fb571
7708ef9
08cbfae
7708ef9
 
 
 
08cbfae
8d9c7cb
7708ef9
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import tensorflow as tf
from keras.utils import custom_object_scope
import gradio as gr

# Defina a camada personalizada FixedDropout
class FixedDropout(tf.keras.layers.Dropout):
    def __init__(self, rate, **kwargs):
        super().__init__(rate, **kwargs)
        self._rate = rate

    def call(self, inputs):
        return tf.nn.dropout(inputs, self._rate)

# Registre a camada personalizada FixedDropout com o TensorFlow
with custom_object_scope({'FixedDropout': FixedDropout}):
    # Carregue o modelo
    loaded_model = tf.keras.models.load_model('modelo_treinado.h5')

# Crie uma lista de classes
class_names = ["Normal", "Cataract"]

# Defina a função de classificação
def classify_image(inp):
    # Reshape a imagem de entrada para o formato esperado pelo modelo
    img = inp.reshape((-1, 224, 224, 3))

    # Faça uma previsão usando o modelo treinado
    prediction = loaded_model.predict(img).flatten()

    # Retorna a classe prevista
    return class_names[np.argmax(prediction)]

# Crie uma interface Gradio
iface = gr.Interface(
    fn=classify_image,
    inputs=gr.inputs.Image(shape=(224, 224)),
    outputs=gr.outputs.Label(),
    capture_session=True
)

# Inicie a interface Gradio
iface.launch(debug=True, share=True)