File size: 1,453 Bytes
7d453ef
 
 
 
8ada2ca
 
e64877c
8ada2ca
7d453ef
 
8ada2ca
7d453ef
c42e89d
8ada2ca
 
 
 
 
 
 
 
 
 
 
 
 
 
c42e89d
8ada2ca
 
 
 
 
 
 
 
 
 
c42e89d
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
import gradio as gr
import tensorflow as tf
import numpy as np

# Модельді жүктеу
model = tf.keras.models.load_model('model.hdf5', compile=False)

# Класстар тізімі
LABELS = ['NORMAL', 'TUBERCULOSIS', 'PNEUMONIA', 'COVID19']

# Суретті өңдеу және болжау функциясы
def predict_input_image(img):
    img = img.resize((128, 128))  # Суреттің өлшемін өзгертеміз
    img_array = np.array(img).reshape(-1, 128, 128, 3) / 255.0
    prediction = model.predict(img_array)[0]
    return {LABELS[i]: float(prediction[i]) for i in range(4)}

# Clear функциясы
def clear_image():
    return None

# Интерфейс құру
with gr.Blocks(title="Lung Disease Classification") as demo:
    gr.Markdown("## Lung Disease Classification Model\nUpload a chest X-ray to predict disease class.")

    with gr.Row():
        with gr.Column(scale=1, min_width=600):
            image = gr.Image(type="pil", label="Upload image")
            with gr.Row():
                clear_btn = gr.Button("Clear")
                submit_btn = gr.Button("Submit", variant='primary')
        label = gr.Label(num_top_classes=4)

    # Батырмаларға функцияларды бекіту
    clear_btn.click(fn=clear_image, inputs=[], outputs=image)
    submit_btn.click(fn=predict_input_image, inputs=image, outputs=label)

# Интерфейсті іске қосу
demo.launch()