Spaces:
Build error
Build error
| import gradio as gr | |
| from transformers import AutoModelForImageClassification, AutoFeatureExtractor | |
| import torch | |
| from PIL import Image | |
| # Load the model and feature extractor once during initialization | |
| model_name = "amjadfqs/finalProject" | |
| model = AutoModelForImageClassification.from_pretrained(model_name) | |
| feature_extractor = AutoFeatureExtractor.from_pretrained(model_name) | |
| def predict(image): | |
| # Preprocess the image | |
| inputs = feature_extractor(images=image, return_tensors="pt") | |
| # Make prediction | |
| with torch.no_grad(): | |
| outputs = model(**inputs) | |
| logits = outputs.logits | |
| # Calculate the confidence values | |
| softmax = torch.nn.functional.softmax(logits, dim=1) | |
| confidences = softmax.squeeze().tolist() | |
| # Get the predicted class | |
| predicted_class_index = logits.argmax(-1).item() | |
| class_names = ["glioma", "meningioma", "notumor", "pituitary"] | |
| predicted_class = class_names[predicted_class_index] | |
| # Create a dictionary to return both the predicted class and the confidence values | |
| result = { | |
| "predicted_class": predicted_class, | |
| "confidences": {class_names[i]: confidences[i] for i in range(len(class_names))} | |
| } | |
| return result | |
| # Set up the Gradio interface | |
| image_cp = gr.Image(type="pil", label='Brain') | |
| interface = gr.Interface(fn=predict, inputs=image_cp, outputs="json") | |
| interface.launch() | |