| # 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, | |
| # check the Google Colab notebook "Lesson_2". | |
| # Remember to select the correct environment with "Select Interpreter" | |
| # Ctrl + Shift + P | |
| 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 = learner.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) | |