File size: 1,102 Bytes
284eba0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
082adb2
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
41
42
43
44
45
46
47
48
49
50
51
52
import gradio as gr
import tensorflow as tf
import numpy as np
import gdown
from PIL import Image



input_shape = (32, 32, 3)
resized_shape = (224, 224, 3)
num_classes = 10
labels = {
    0: "plane",
    1: "car",
    2: "bird",
    3: "cat",
    4: "deer",
    5: "dog",
    6: "frog",
    7: "horse",
    8: "ship",
    9: "truck",
}

# a file
url = "https://drive.google.com/uc?id=12700bE-pomYKoVQ214VrpBoJ7akXcTpL"
output = "modelV2Lmixed.keras"
gdown.download(url, output, quiet=False)


def load_model():
    model = tf.keras.models.load_model("./modelV2Lmixed.keras")
    return model


def classify_image(image, model):
    image = tf.cast(image, tf.float32)
    image = tf.image.resize(image, [32, 32])
    image = np.expand_dims(image, axis=0)
    prediction = model.predict(image)
    confidences = {labels[i]: float(prediction[i]) for i in range(10)}
    return confidences


model = load_model()


gr.Interface(fn=classify_image, 
             inputs=gr.Image(shape=(32, 32)),
             outputs=gr.Label(num_top_classes=3),
             examples=["03_cat.jpg", "05_dog.jpg"]).launch()