Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import tensorflow as tf | |
| import numpy as np | |
| # Load the trained model | |
| model = tf.keras.models.load_model('model.h5') | |
| print("Model loaded successfully!") | |
| def preprocess_image(image): | |
| """Process the input image to match MNIST format""" | |
| # Convert to grayscale | |
| image = image.convert('L') | |
| # Resize to 28x28 | |
| image = image.resize((28, 28)) | |
| # Convert to numpy array and normalize | |
| image_array = np.array(image) | |
| image_array = image_array / 255.0 | |
| # Reshape to match model input | |
| image_array = np.expand_dims(image_array, axis=0) | |
| return image_array | |
| def predict_digit(image): | |
| if image is None: | |
| return None | |
| # Preprocess the image | |
| processed_image = preprocess_image(image) | |
| # Make prediction | |
| predictions = model.predict(processed_image) | |
| pred_scores = tf.nn.softmax(predictions[0]).numpy() | |
| pred_class = np.argmax(pred_scores) | |
| # Create result string | |
| result = f"Prediction: {pred_class}" | |
| return result | |
| # Create Gradio interface | |
| demo = gr.Interface( | |
| fn=predict_digit, | |
| inputs=gr.Image(type="pil"), | |
| outputs=gr.Textbox(label="Result"), | |
| title="MNIST Digit Recognizer", | |
| description="Upload a digit from 0-9 and the model will predict which digit it is.", | |
| examples=None, | |
| ) | |
| if __name__ == "__main__": | |
| demo.launch() |