834188divi hari31416 commited on
Commit
3b418e4
·
0 Parent(s):

Duplicate from hari31416/digit_recognizer

Browse files

Co-authored-by: Harikesh Kushwaha <hari31416@users.noreply.huggingface.co>

Files changed (6) hide show
  1. .gitattributes +34 -0
  2. README.md +14 -0
  3. app.py +70 -0
  4. mnist.h5 +3 -0
  5. requirements.txt +2 -0
  6. style.css +9 -0
.gitattributes ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tflite filter=lfs diff=lfs merge=lfs -text
29
+ *.tgz filter=lfs diff=lfs merge=lfs -text
30
+ *.wasm filter=lfs diff=lfs merge=lfs -text
31
+ *.xz filter=lfs diff=lfs merge=lfs -text
32
+ *.zip filter=lfs diff=lfs merge=lfs -text
33
+ *.zst filter=lfs diff=lfs merge=lfs -text
34
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: Digit Recognizer
3
+ emoji: 🐨
4
+ colorFrom: purple
5
+ colorTo: purple
6
+ sdk: gradio
7
+ sdk_version: 3.32.0
8
+ app_file: app.py
9
+ pinned: false
10
+ license: mit
11
+ duplicated_from: hari31416/digit_recognizer
12
+ ---
13
+
14
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
app.py ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import numpy as np
3
+ import tensorflow as tf
4
+
5
+ # Load the model
6
+ model = tf.keras.models.load_model("mnist.h5")
7
+
8
+
9
+ # Define a function to predict the digit
10
+ def predict_digit(img):
11
+ # Resize the image to 28x28 pixels
12
+ img = img.reshape((1, 28, 28, 1))
13
+ # Normalize the image
14
+ if img.max() > 1:
15
+ img = img / 255.0
16
+ # Predict the class
17
+ res = model.predict([img])[0]
18
+ # create result dictionary
19
+ return {str(i): float(res[i]) for i in range(10)}
20
+
21
+
22
+ with gr.Blocks(
23
+ css="style.css",
24
+ theme=gr.themes.Default(primary_hue="blue", secondary_hue="cyan"),
25
+ ) as app:
26
+ # create a header and a para
27
+ with gr.Row():
28
+ gr.Markdown(
29
+ """# MNIST Digit Recognizer
30
+ This app recognizes handwritten digits. The app uses a sketchpad to get the input image.
31
+
32
+ Model used is a two layered Convolution network, followed by a fully connected layer and a softmax layer.
33
+ """,
34
+ )
35
+ with gr.Row():
36
+ gr.Markdown("## Sketchpad")
37
+ gr.Markdown("## Prediction")
38
+ # create a row
39
+ with gr.Row():
40
+ # create a sketchpad
41
+ sketchpad = gr.Sketchpad(
42
+ shape=(28, 28),
43
+ brush_radius=2,
44
+ elem_id="sketchpad",
45
+ label="Draw a digit here",
46
+ )
47
+ blank_sketchpad = gr.Sketchpad(
48
+ invert_colors=True, brush_radius=2, visible=False
49
+ )
50
+ # create a label
51
+ label = gr.Label(
52
+ num_top_classes=3,
53
+ elem_id="label",
54
+ label="Prediction",
55
+ )
56
+
57
+ # create a button
58
+ button = gr.Button("Predict", elem_id="btn_pred")
59
+ # bind the button to predict the digit
60
+ button.click(
61
+ predict_digit,
62
+ inputs=sketchpad,
63
+ outputs=label,
64
+ )
65
+
66
+ # create a clear button for sketchpad
67
+ clear_button = gr.Button("Clear", elem_id="btn_clr")
68
+ clear_button.click(lambda a: None, inputs=blank_sketchpad, outputs=sketchpad)
69
+
70
+ app.launch(share=False)
mnist.h5 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:06b1503d9e13866c2aa1123972a65fa0843141661e494f84bdf5782056fa1d16
3
+ size 465008
requirements.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ tensorflow-cpu
2
+ gradio
style.css ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ #btn_pred {
2
+ margin-left: 37.5%;
3
+ width: 25%;
4
+ }
5
+
6
+ #btn_clr {
7
+ margin-left: 37.5%;
8
+ width: 25%;
9
+ }