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


def shoe(x):
    return x[0].isupper()


learn = load_learner('ShoeClassifierRevised.pkl')
categories = ("everyday running shoes", "road racing running shoes",
              "stability running shoes", "tempo running shoes")


def classify_image(img):
    pred, idx, probs = learn.predict(img)
    return dict(zip(categories, map(float, probs)))


image = gr.inputs.Image(shape=(256, 256))
label = gr.outputs.Label()
examples = ["racers.jpeg", "stability.jpeg", "dailytrainer.jpeg", "tempo.jpeg"]

intf = gr.Interface(fn=classify_image, inputs=image,
                    outputs=label, examples=examples)
intf.launch(inline=False)