Spaces:
Sleeping
Sleeping
Download app.py from basaktamer/Digit_Recognizer: direct link, hf CLI and curl.
- Browser
- Download file 1.55 kB
-
https://huggingface.co/spaces/basaktamer/Digit_Recognizer/resolve/main/app.py
- Command line
-
hf download hf://spaces/basaktamer/Digit_Recognizer/app.py
-
curl -L -o app.py https://huggingface.co/spaces/basaktamer/Digit_Recognizer/resolve/main/app.py
1.55 kB
| import streamlit as st | |
| import joblib | |
| import numpy as np | |
| import pandas as pd | |
| # 1. Page Config | |
| st.set_page_config(page_title="Digit Recognizer", page_icon="🔢") | |
| st.title("🔢 Digit Recognizer") | |
| st.write("This app uses a Random Forest model to predict hand-drawn digits.") | |
| # 2. Load the Model | |
| def load_model(): | |
| # Ensure digit_recognizer_rf.joblib is in the same folder | |
| return joblib.load("digit_recognizer_rf.joblib") | |
| model = load_model() | |
| # 3. Sidebar for Data Upload (Optional) | |
| st.sidebar.header("Upload Data") | |
| uploaded_file = st.sidebar.file_exists = st.sidebar.file_uploader("Upload test.csv", type="csv") | |
| if uploaded_file is not None: | |
| test_data = pd.read_csv(uploaded_file) | |
| # Select a row to predict | |
| row_index = st.number_input("Select an image index from CSV", min_value=0, max_value=len(test_data)-1, value=0) | |
| if st.button("Predict Digit"): | |
| # Get pixels and normalize (if you did this during training) | |
| pixels = test_data.iloc[row_index].values.reshape(1, -1) | |
| # Display Image | |
| image_reshaped = pixels.reshape(28, 28) | |
| st.image(image_reshaped, caption=f"Image at index {row_index}", width=150) | |
| # Prediction | |
| prediction = model.predict(pixels) | |
| st.success(f"The model predicts this digit is: **{prediction[0]}**") | |
| else: | |
| st.info("Please upload the 'test.csv' file from Kaggle in the sidebar to test the model.") | |
| st.divider() | |
| st.caption("Developed by Basak Tamer | Part of 20-Kaggle Competition Challenge") |