SpiderClassification / build_gradio.py
Spidartist's picture
Upload 13 files
961d213
import gradio as gr
from keras.models import load_model
from keras.layers import Layer, Softmax
import numpy as np
softmax = Softmax()
class Normalization(Layer):
def __init__(self, name=None, **kwargs):
super(Normalization, self).__init__()
self.mean = [0.485, 0.456, 0.406]
self.std = [0.229, 0.224, 0.225]
def call(self, inputs):
return (inputs - self.mean) / self.std
cnn_model = load_model("./files/spider.h5", custom_objects={'Normalization': Normalization})
class_names = ['Black Widow',
'Blue Tarantula',
'Bold Jumper',
'Brown Grass Spider',
'Brown Recluse Spider',
'Deinopis Spider',
'Golden Orb Weaver',
'Hobo Spider',
'Huntsman Spider',
'Ladybird Mimic Spider',
'Peacock Spider',
'Red Knee Tarantula',
'Spiny-backed Orb-weaver',
'White Kneed Tarantula',
'Yellow Garden Spider']
cnn_model.summary()
def predict_input_image(img):
img_4d = img.reshape(1, 224, 224, 3)
img_4d = img_4d / 255.0
prediction = softmax(cnn_model.predict(img_4d)[0]).numpy()
return {class_names[i]: float(prediction[i]) for i in range(len(class_names))}
image = gr.Image(shape=(224, 224))
label = gr.Label(num_top_classes=len(class_names))
gr.Interface(fn=predict_input_image, inputs=image, outputs=label, interpretation='default').launch(debug='True')