Spidartist's picture
Update app.py
1d35a85
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/model_new.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 = np.resize(img, (224, 224, 3))
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(height=224, width=224)
label = gr.Label(num_top_classes=len(class_names))
gr.Interface(fn=predict_input_image, inputs=image, outputs=label, theme="default",
css=".footer{display:none !important}").launch(debug='True')