CoolFace
Apppublic

davegenu/Imagenette_Image_Classifier

sourceHugging Faceupdated 5mo agoView on Hugging Face
0likes
app.py40 linesDownload Raw Back to root
1import gradio as gr2import torch3from torchvision import transforms4from fastai.vision.all import load_learner5from PIL import Image6 7learn = load_learner("imagenette_classifier.pkl")8 9_tfms = transforms.Compose([10    transforms.Resize(460),11    transforms.CenterCrop(224),12    transforms.ToTensor(),13    transforms.Normalize(mean=[0.485, 0.456, 0.406],14                         std=[0.229, 0.224, 0.225]),15])16 17def predict(filepath):18    img = Image.open(filepath).convert("RGB")19    tensor = _tfms(img).unsqueeze(0)20    learn.model.eval()21    with torch.no_grad():22        preds = learn.model(tensor)23        probs = torch.softmax(preds, dim=1)[0]24    return {str(learn.dls.vocab[i]): float(probs[i]) for i in range(len(learn.dls.vocab))}25 26gr.Interface(27    fn=predict,28    inputs=gr.Image(type="filepath"),29    outputs=gr.Label(num_top_classes=5),30    title="Imagenette Image Classifier",31    description=(32        "Upload an image and the model will classify it into one of 10 categories: "33        "Tench, English Springer, Cassette Player, Chain Saw, Church, "34        "French Horn, Garbage Truck, Gas Pump, Golf Ball, Parachute.\n\n"35        "Model: ResNet50 fine-tuned on Imagenette — 99.59% validation accuracy."36    ),37).launch()38 39 40