Spaces:
Sleeping
Sleeping
import gradio as gr | |
import json | |
import torch | |
from PIL import Image | |
from torchvision import models, transforms | |
with open("data/imagenet-simple-labels.json") as f: | |
labels = json.load(f) | |
model = models.vgg16(pretrained=True) | |
model.eval() # 推論モードに設定 | |
preprocess = transforms.Compose( | |
[ | |
transforms.Resize(256), | |
transforms.CenterCrop(224), | |
transforms.ToTensor(), | |
transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]), | |
] | |
) | |
def classify_image(input_image: Image): | |
img_t = preprocess(input_image) | |
batch_t = torch.unsqueeze(img_t, 0) | |
with torch.no_grad(): | |
output = model(batch_t) | |
probabilities = torch.nn.functional.softmax(output, dim=1) | |
label_to_prob = {labels[i]: prob for i, prob in enumerate(probabilities[0])} | |
return label_to_prob | |
demo = gr.Interface(fn=classify_image, inputs=gr.Image(type="pil"), outputs="label") | |
demo.launch() | |