Spaces:
Sleeping
Sleeping
import gradio as gr | |
import torch | |
import torchvision.transforms.functional as TF | |
from model import NeuralNetwork | |
import json | |
import os | |
device = "cuda" if torch.cuda.is_available() else "cpu" | |
def pokemon_classifier(inp): | |
model = NeuralNetwork() | |
model.load_state_dict(torch.load("model_best.pt", map_location=torch.device(device))) | |
model.eval() | |
with open('labels.json') as f: | |
labels = json.load(f) | |
x = TF.to_tensor(inp) | |
x = TF.resize(x, 64, antialias=True) | |
x = x.to(device) | |
x = x.unsqueeze(0) | |
with torch.no_grad(): | |
y_pred = model(x) | |
pokemon = torch.argmax(y_pred, dim=1).item() | |
return labels[str(pokemon)] | |
with gr.Blocks() as demo: | |
gr.Markdown("# Gen 1 Pokemon classifier") | |
with gr.Row(): | |
inp = gr.Image(type="pil") | |
out = gr.Textbox() | |
btn = gr.Button("Run") | |
btn.click(fn=pokemon_classifier, inputs=inp, outputs=out) | |
demo.launch() |