Spaces:
Running
Running
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() | |