import gradio as gr
from fastai.vision.all import *
import skimage

learn = load_learner('model.pkl')

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))}

interface=gr.Interface(
    fn=predict,
    inputs=gr.Image(shape=(512, 512)),
    outputs=gr.Label(num_top_classes=3),
    interpretation='default'
)
interface.queue()
interface.launch(share=True)