# This script is used to create a Gradio interface in which we have a | |
# dog vs cat classifier using the fastai library. For more explanation, | |
# visit the Google Colab notebook associated. | |
from fastai.vision.all import * | |
import gradio as gr | |
# Define label function | |
def is_cat(x): return x[0].isupper() | |
# Load our model | |
learner = load_learner('model.pkl') | |
# Transform our model to obtain results that Gradio can handle with | |
categories = ('Dog', 'Cat') | |
def classify_image(img): | |
# We are saying that this predictions returns: the prediction, its index and the prediction probability | |
pred,idx,probs = learn.predict(img) | |
# Here we return a dictionary with categories as keys and its probabilities as values | |
return dict(zip(categories, map(float, probs))) | |
# Create the Gradio interface | |
image = gr.inputs.Image(shape=(192,192)) | |
label = gr.outputs.Label() | |
examples = ['dogg.jpg', 'cat.jpg', 'dunno.jpg'] | |
intf = gr.Interface(fn=classify_image, inputs=image, outputs=label, examples=examples) | |
intf.launch(inline=False, share=True) | |