suvash's picture
better title and description
463babe
raw
history blame
1.34 kB
import gradio
from fastai.vision.all import *
MODELS_PATH = Path('./models')
EXAMPLES_PATH = Path('./examples')
# Required function used by fastai learner (at training setup)
def label_func(filepath):
return filepath.parent.name
learn = load_learner(MODELS_PATH/'food-101-resnet50.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))}
with open('gradio_article.md') as f:
article = f.read()
interface_options = {
"title": "Food Image Classifier (Food-101|ResNet50|fast.ai)",
"description": "A food image classifier trained on the Food-101 dataset, using ResNet50 and fast.ai.(https://data.vision.ee.ethz.ch/cvl/datasets_extra/food-101/)",
"article": article,
"examples" : [f'{EXAMPLES_PATH}/{f.name}' for f in EXAMPLES_PATH.iterdir()],
"interpretation": "default",
"layout": "horizontal",
"theme": "default",
"allow_flagging": "never",
}
demo = gradio.Interface(fn=predict,
inputs=gradio.inputs.Image(shape=(512, 512)),
outputs=gradio.outputs.Label(num_top_classes=5),
**interface_options)
launch_options = {
"enable_queue": True,
"share": False,
}
demo.launch(**launch_options)