Transfer-Model / app.py
Yenes's picture
Upload 3 files
5fa307a verified
Raw History Blame Contribute Delete
1.33 kB
import torch
import torch.nn as nn
import torchvision
import gradio as gr
from PIL import Image
from torchvision import transforms
weights = torchvision.models.DenseNet169_Weights.DEFAULT
dense_tranform = weights.transforms()
transfermodel = torchvision.models.densenet169(weights = weights)
transfermodel.classifier = nn.Sequential(nn.Linear(1664, 800), nn.ReLU(),
nn.Linear(800, 400), nn.ReLU(),
nn.Linear(400, 2))
transfermodel.load_state_dict(torch.load('transfermodel.pth'))
class_names=['NORMAL', 'PNEUMONIA']
def predict(img):
img = dense_tranform(img).unsqueeze(0)
transfermodel.eval()
transfermodel.to("cpu")
with torch.inference_mode():
pred_probs = torch.softmax(transfermodel(img), dim=1)
pred_labels_and_probs = {class_names[i]: float(pred_probs[0][i]) for i in range(len(class_names))}
return pred_labels_and_probs
title = "Zatürre Bulucu"
description = "Gönderilen fotoğrafa göre Sağlıklı mı yoksa Zatürre mi olduğunu tahmin eder."
demo = gr.Interface(
fn=predict,
inputs=gr.Image(type="pil"),
outputs=[gr.Label(num_top_classes=2, label="Predictions")],
title=title,
description=description
)
demo.launch(debug=False, share=True)