Pant0x commited on
Commit
87ba8b8
·
verified ·
1 Parent(s): fa51dd3

Upload 6 files

Browse files
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ models/cifar10_cnn.keras filter=lfs diff=lfs merge=lfs -text
README.md CHANGED
@@ -1,13 +0,0 @@
1
- ---
2
- title: CNN
3
- emoji: 📊
4
- colorFrom: red
5
- colorTo: yellow
6
- sdk: gradio
7
- sdk_version: 6.0.2
8
- app_file: app.py
9
- pinned: false
10
- short_description: cifar10_cnn
11
- ---
12
-
13
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app.py ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import tensorflow as tf
3
+ import numpy as np
4
+ from PIL import Image
5
+ import json
6
+
7
+ # -----------------------------
8
+ # CONFIG
9
+ # -----------------------------
10
+ st.set_page_config(
11
+ page_title="CIFAR-10 Classifier",
12
+ page_icon="🖼️",
13
+ layout="centered",
14
+ )
15
+ st.title("🚀 CIFAR-10 Image Classifier")
16
+ st.markdown("Upload an image and see what the model predicts!")
17
+
18
+ # -----------------------------
19
+ # LOAD MODEL AND LABELS
20
+ # -----------------------------
21
+ @st.cache_resource
22
+ def load_model_and_labels():
23
+ model = tf.keras.models.load_model("models/cifar10_cnn.keras")
24
+ with open("models/labels_map.json", "r") as f:
25
+ labels = json.load(f)
26
+ return model, labels
27
+
28
+ model, labels = load_model_and_labels()
29
+
30
+ # -----------------------------
31
+ # IMAGE UPLOAD
32
+ # -----------------------------
33
+ uploaded_file = st.file_uploader("Upload an image (PNG/JPG)", type=["png","jpg","jpeg"])
34
+
35
+ if uploaded_file:
36
+ img = Image.open(uploaded_file).convert("RGB")
37
+ st.image(img, caption="Uploaded Image", use_column_width=False)
38
+
39
+ # -----------------------------
40
+ # PREPROCESS IMAGE
41
+ # -----------------------------
42
+ def preprocess_image(img):
43
+ img = img.resize((32,32)) # CIFAR-10 input size
44
+ img = np.array(img)/255.0
45
+ return img
46
+
47
+ x = preprocess_image(img)
48
+
49
+ # -----------------------------
50
+ # PREDICTION
51
+ # -----------------------------
52
+ with st.spinner("Predicting..."):
53
+ x_input = x.reshape(1,32,32,3)
54
+ preds = model.predict(x_input)[0]
55
+ top_idx = preds.argsort()[-3:][::-1]
56
+
57
+ st.subheader("✅ Prediction")
58
+ st.write(f"**Top-1:** {labels[str(top_idx[0])]} ({preds[top_idx[0]]*100:.2f}%)")
59
+
60
+ st.subheader("📊 Top-3 Predictions")
61
+ for i in top_idx:
62
+ st.write(f"{labels[str(i)]}: {preds[i]*100:.2f}%")
63
+
64
+ # -----------------------------
65
+ # BAR CHART
66
+ # -----------------------------
67
+ st.subheader("📈 All Class Probabilities")
68
+ st.bar_chart({labels[str(i)]: float(preds[i]) for i in range(len(labels))})
69
+
70
+ else:
71
+ st.info("Upload an image to see predictions.")
cifar-10-cnn.ipynb ADDED
The diff for this file is too large to render. See raw diff
 
models/cifar10_cnn.keras ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3d78265e9624809fc850345439766c6f49bbfc52a3c06c16ab7e84b236209a68
3
+ size 16211390
models/labels_map.json ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "0": "airplane",
3
+ "1": "automobile",
4
+ "2": "bird",
5
+ "3": "cat",
6
+ "4": "deer",
7
+ "5": "dog",
8
+ "6": "frog",
9
+ "7": "horse",
10
+ "8": "ship",
11
+ "9": "truck"
12
+ }
requirements.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ tensorflow
2
+ streamlit
3
+ numpy
4
+ pillow