File size: 1,248 Bytes
4a7b642
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7804fbe
5509100
6189582
 
7804fbe
 
1751d3f
 
7804fbe
 
 
 
 
 
1751d3f
7804fbe
 
 
 
 
 
1751d3f
bd1dfb3
1751d3f
9fdca36
1751d3f
 
f68a643
7804fbe
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
# import gradio as gr
# import numpy as np
# from modelutil import create_model


# def predict_digit(image):
#     try:
#         if image == None: pass
#     except:
#         model = create_model()
#         predictions = model.predict(image.reshape(1, 28, 28))
#         return np.argmax(predictions)

# gr.Interface(
#     title="MNIST Digit Classifier by Papa Sega",
#     fn=predict_digit, 
#     inputs=gr.Sketchpad( label="Draw a digit"),
#     outputs="number",
#     live=True
# ).launch()

import tensorflow as tf
import gradio as gr
import numpy as np

# Load the CNN model from the .h5 file
model = tf.keras.models.load_model('mnist_cnn_model.h5')

def predict_digit(image):
    # Preprocess the input image
    image = np.expand_dims(image, axis=0)  # Add batch dimension
    image = image / 255.0  # Normalize pixel values

    # Make predictions
    predictions = model.predict(image)

    # Get the predicted digit
    predicted_digit = np.argmax(predictions)

    return predicted_digit

# Define Gradio interface
gr.Interface(
    title="MNIST Digit Classifier by Papa Sega",
    fn=predict_digit, 
    inputs=gr.Sketchpad(label="Draw a digit",  height=500, width=500),
    outputs="number",
    live=True
).launch(debug=True)