Spaces:
Sleeping
Sleeping
# -*- coding: utf-8 -*- | |
"""gradio_deploy.ipynb | |
Automatically generated by Colaboratory. | |
Original file is located at | |
https://colab.research.google.com/drive/13X2E9v7GxryXyT39R5CzxrNwxfA6KMFJ | |
""" | |
import os | |
import gradio as gr | |
from PIL import Image | |
from timeit import default_timer as timer | |
from tensorflow import keras | |
import numpy as np | |
MODEL = keras.models.load_model("convnet_from_scratch_with_augmentation.keras") | |
def predict(img): | |
# Start the timer | |
start_time = timer() | |
# Reading the image and size transformation | |
features = Image.open(img) | |
features = features.resize((180, 180)) | |
features = np.array(features).reshape(1, 180,180,3) | |
# Create a prediction label and prediction probability dictionary for each prediction class | |
# This is the required format for Gradio's output parameter | |
pred_labels_and_probs = {'dog':float(MODEL.predict(features))} if MODEL.predict(features)> 0.5 else {'cat':1-float(MODEL.predict(features))} | |
# Calculate the prediction time | |
pred_time = round(timer() - start_time, 5) | |
# Return the prediction dictionary and prediction time | |
return pred_labels_and_probs, pred_time | |
# Create title, description and article strings | |
example_list = [["examples/" + example] for example in os.listdir("examples")] | |
title = "Classification Demo" | |
description = "Cat/Dog classification Tensorflow model with Augmented small dataset" | |
# Create the Gradio demo | |
demo = gr.Interface(fn=predict, # mapping function from input to output | |
inputs=gr.Image(type='filepath'), # what are the inputs? | |
outputs=[gr.Label(label="Predictions"), # what are the outputs? | |
gr.Number(label="Prediction time (s)")], # our fn has two outputs, therefore we have two outputs | |
examples=example_list, | |
title=title, | |
description=description,) | |
# Launch the demo! | |
# Trial | |
demo.launch() | |