File size: 1,447 Bytes
31444a8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fb17f87
31444a8
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
from keras.applications.vgg16 import VGG16,preprocess_input, decode_predictions
import keras.utils as image
from tensorflow.keras.layers import Dense, Flatten ,Dropout
from tensorflow.keras import Model
import numpy as np
import gradio as gr
import tensorflow as tf

vgg16 = VGG16(weights='imagenet', input_shape=(224,224,3), classes=10,include_top=False)

for layer in vgg16.layers:
            layer.trainable = False
            
x = Flatten()(vgg16.output)
x = Dense(256, activation='relu')(x)
x = Dropout(0.5)(x)
predictions = Dense(10, activation='softmax')(x)

vgg16_model = Model(inputs=vgg16.input, outputs=predictions)

vgg16_model.load_weights("VGG16_model.h5")

def prediction(input_image):
    # img = image.load_img(input_image, target_size=(224, 224))
    # x = image.img_to_array(img)
    img = tf.image.resize(input_image,(224,224))
    x = np.expand_dims(img, axis=0)
    # x = preprocess_input(x)
    preds=vgg16_model.predict(x)
    # create a list containing the class labels
    # find the index of the class with maximum score
    pred = np.argmax(preds, axis=-1)
    
    class_names = ['dog','horse','elephant','butterfly','chicken','cat','cow','sheep','spider','squirrel']
    # print the label of the class with maximum score
    return class_names[pred[0]]
    
# animals_classes = prediction("OIF-e2bexWrojgtQnAPPcUfOWQ.jpeg")

gr.Interface(fn=prediction,inputs=gr.Image(),outputs=gr.Label(num_top_classes=1)).launch()