File size: 1,143 Bytes
d70585e
044b146
 
 
d70585e
044b146
 
d70585e
 
 
 
7b7ada0
dc05c78
 
2fb41bc
7b7ada0
 
2fb41bc
d70585e
 
 
 
 
 
 
2fb41bc
 
8d28437
3a813cf
d70585e
8d28437
d70585e
 
 
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
import gradio as gr
import tensorflow as tf
import numpy as np

# Load the trained model
model = tf.keras.models.load_model("denis_mnist_cnn_model.h5")

# Preprocessing function for images
def preprocess_image(image):
    # Resize the image to 28x28 as expected by the model
    image = tf.image.resize(image, (28, 28))  # Resize to 28x28
    
    # Convert image to float32 and normalize pixel values to [0, 1]
    image = tf.cast(image, tf.float32) / 255.0
    
    # Add batch dimension (model expects batch of images)
    image = tf.expand_dims(image, axis=0)

    return image

# Function to make predictions
def predict(image):
    image = preprocess_image(image)
    prediction = model.predict(image)  # Predict
    predicted_class = np.argmax(prediction, axis=-1)[0]  # Get the predicted class
    class_confidence = np.max(prediction, axis=-1)[0]  # Get the confidence score
    return {"prediction": int(predicted_class), "confidence": class_confidence}

# Create a Gradio interface
interface = gr.Interface(fn=predict, inputs="image", outputs="json")

# Launch the Gradio interface
if __name__ == "__main__":
    interface.launch()