chitang1's picture
Update app.py
b3e9924 verified
import gradio as gr
from fastai.vision.all import *
# MODELS_PATH = Path('./models')
# EXAMPLES_PATH = Path('./examples')
# Required function expected by fastai learn object
# it wasn't exported as a part of the pickle
# as it was defined externally to the learner object
# during the training time dataloaders setup
# def label_func(filepath):
# return filepath.parent.name
LEARN = load_learner('Garbage_Classification.pkl')
# LEARN = load_learner('Garbage_Classification (1).pkl')
LABELS = LEARN.dls.vocab
def gradio_predict(img):
img = img.resize((512, 512))
# img = PILImage.create(img)
pred, pred_idx, probs = LEARN.predict(img)
return dict(zip(LABELS, map(float,probs)))
# with open('gradio_article.md') as f:
# article = f.read()
# interface_options = {
# "title": "Food Image Classifier (Food-101|ResNet50|fast.ai)",
# "description": "",
# "article": article,
# "examples" : [f'{EXAMPLES_PATH}/{f.name}' for f in EXAMPLES_PATH.iterdir()],
# "layout": "horizontal",
# "theme": "default",
# }
image = gr.Image(type="pil", label="Upload an image")
label = gr.Label()
examples = ['battery.jpg', 'biological.jpg', 'cardboard.jpg']
intf = gr.Interface(fn=gradio_predict, inputs=image, outputs=label, examples=examples)
intf.launch(inline=False)
# demo = gr.Interface(fn=gradio_predict,
# inputs=gradio.Image(type="pil", label="Upload an image"),
# outputs=gradio.outputs.Label(num_top_classes=5),
# **interface_options)
# launch_options = {
# "enable_queue": True,
# "share": False,
# }
# demo.launch(**launch_options)