Hardey067's picture
Update app.py
bd8710f verified
Raw
History Blame Contribute Delete
1.32 kB
import torch
import torch.nn as nn
from torchvision import models, transforms
from PIL import Image
import gradio as gr
# Load model
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = models.resnet18(weights=None)
model.fc = nn.Linear(model.fc.in_features, 7)
model.load_state_dict(torch.load("best_model.pth", map_location=device))
model.to(device)
model.eval()
# Class names
class_names = [
'Actinic Keratosis',
'Basal Cell Carcinoma',
'Benign Keratosis',
'Dermatofibroma',
'Melanocytic Nevi',
'Melanoma',
'Vascular Lesions'
]
# Image preprocessing
transform = transforms.Compose([
transforms.Resize((224, 224)),
transforms.ToTensor()
])
# Prediction function
def predict(image):
image = image.convert("RGB")
input_tensor = transform(image).unsqueeze(0).to(device)
with torch.no_grad():
output = model(input_tensor)
pred_index = output.argmax().item()
prediction = class_names[pred_index]
return f"Prediction: {prediction}"
# Gradio Interface
iface = gr.Interface(
fn=predict,
inputs=gr.Image(type="pil"),
outputs="text",
title="DermAI - Skin Disease Detection",
description="Upload an image of a skin lesion to detect the condition."
)
if __name__ == "__main__":
iface.launch(share=True)