ish028792's picture
Update app.py
1929032 verified
import gradio as gr
import pandas as pd
import numpy as np
from tensorflow.keras.models import load_model
import pickle
from PIL import Image
# Load models
diabetes_model = pickle.load(open("modelv4.pkl", "rb"))
pneumonia_model = load_model("cnn_model (1).h5")
breast_cancer_model = pickle.load(open("model.pkl", "rb"))
def predict_diabetes(file):
df = pd.read_csv(file)
prediction = diabetes_model.predict(df)
result = ["Positive" if p > 0.5 else "Negative" for p in prediction]
return result
def predict_pneumonia(image):
img = Image.open(image).convert('RGB')
img = img.resize((150, 150))
img = np.array(img) / 255.0
img = img.reshape(1, 150, 150, 3)
prediction = pneumonia_model.predict(img)[0][0]
return "Positive" if prediction > 0.5 else "Negative"
def predict_breast_cancer(file):
df = pd.read_csv(file)
prediction = breast_cancer_model.predict(df)
result = ["Positive" if p > 0.5 else "Negative" for p in prediction]
return result
# Gradio Interface
diabetes_interface = gr.Interface(
fn=predict_diabetes,
inputs=gr.File(label="Upload CSV File for Diabetes"),
outputs=gr.Label(label="Diabetes Prediction"),
)
pneumonia_interface = gr.Interface(
fn=predict_pneumonia,
inputs=gr.Image(type="file", label="Upload Chest X-ray Image"),
outputs=gr.Label(label="Pneumonia Prediction"),
)
breast_cancer_interface = gr.Interface(
fn=predict_breast_cancer,
inputs=gr.File(label="Upload CSV File for Breast Cancer"),
outputs=gr.Label(label="Breast Cancer Prediction"),
)
app = gr.TabbedInterface(
[diabetes_interface, pneumonia_interface, breast_cancer_interface],
["Diabetes", "Pneumonia", "Breast Cancer"],
)
if __name__ == "__main__":
app.launch()