File size: 2,123 Bytes
1aab986
 
1ea44e9
1aab986
 
 
 
 
 
 
 
 
 
225f4af
 
 
 
 
1e5dbae
225f4af
 
 
 
 
a785b32
 
 
 
 
 
 
 
 
 
 
225f4af
 
a785b32
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
---
title: Digits
emoji: 🔢
colorFrom: indigo
colorTo: indigo
sdk: gradio
sdk_version: 3.12.0
app_file: app.py
pinned: false
license: apache-2.0
---

Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference

This gradio app predicts digits using a convolutive neural network (CNN) that was trained on the MNIST hand-drawn digit data set:
@article{lecun2010mnist,
  title={MNIST handwritten digit database},
  author={LeCun, Yann and Cortes, Corinna and Burges, CJ},
  journal={ATT Labs [Online]. Available: http://yann.lecun.com/exdb/mnist/},
  volume={2},
  year={2010}
}

The PyTorch network architecture:
Sequential(
  (conv1): Conv2d(1, 32, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))
  (relu1): ReLU()
  (pool1): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
  (conv2): Conv2d(32, 64, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))
  (relu2): ReLU()
  (pool2): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
  (flatten): Flatten(start_dim=1, end_dim=-1)
  (fc1): Linear(in_features=3136, out_features=1024, bias=True)
  (dropout): Dropout(p=0.5, inplace=False)
  (fc2): Linear(in_features=1024, out_features=10, bias=True)
)

The model was trained using cross entropy loss function, the Adam stochastic optimizer.
Training was done for 10 epochs, using batch size of 64, and with a learning rate of 0.001.

The training and validation accuracy after each epoch was as follows:

 Epoch 1 ---- train accuracy: 0.9607 ---- val accuracy: 0.9885
 Epoch 2 ---- train accuracy: 0.9870 ---- val accuracy: 0.9894
 Epoch 3 ---- train accuracy: 0.9893 ---- val accuracy: 0.9892
 Epoch 4 ---- train accuracy: 0.9925 ---- val accuracy: 0.9914
 Epoch 5 ---- train accuracy: 0.9932 ---- val accuracy: 0.9872
 Epoch 6 ---- train accuracy: 0.9947 ---- val accuracy: 0.9904
 Epoch 7 ---- train accuracy: 0.9946 ---- val accuracy: 0.9888
 Epoch 8 ---- train accuracy: 0.9947 ---- val accuracy: 0.9920
 Epoch 9 ---- train accuracy: 0.9962 ---- val accuracy: 0.9912
 Epoch 10 ---- train accuracy: 0.9960 ---- val accuracy: 0.9915