|
|
import gradio as gr |
|
|
from fastai.vision.all import * |
|
|
from huggingface_hub import from_pretrained_fastai |
|
|
import torch, os |
|
|
|
|
|
os.environ.setdefault("OMP_NUM_THREADS", "1") |
|
|
torch.set_num_threads(1) |
|
|
|
|
|
learn = from_pretrained_fastai("Pablogps/castle-classifier-25") |
|
|
try: |
|
|
learn.to_fp32() |
|
|
except: |
|
|
pass |
|
|
labels = learn.dls.vocab |
|
|
|
|
|
def predict(img): |
|
|
img = PILImage.create(img) |
|
|
pred, pred_idx, probs = learn.predict(img) |
|
|
return {labels[i]: float(probs[i]) for i in range(len(labels))} |
|
|
|
|
|
title = "Bad castle predictor" |
|
|
description = "A bad model that tries to identify the type of castle." |
|
|
examples = ['spanish', 'french', 'japanese'] |
|
|
|
|
|
demo = gr.Interface( |
|
|
fn=predict, |
|
|
inputs=gr.Image(type="pil"), |
|
|
outputs=gr.Label(num_top_classes=3), |
|
|
title=title, |
|
|
description=description, |
|
|
examples=examples, |
|
|
cache_examples=False, |
|
|
) |
|
|
|
|
|
demo.queue(max_size=8).launch(show_error=True, debug=True) |