Python application to recognize handwritten digits in real time!
I've always been interested in Artificial Intelligence and came across 3B1B's video about neural networks
That's why I started with one of the most basic NN project, digits recognition.
- Run
python -m pip install -r .\requirements.txt
- Run
python app.py
- If it gives an error, run
python model.py
first
- If it gives an error, run
- Left click to draw
- Right click to erase
- Middle click to reset
- Conv2D: A 2D convolutional layer with 16 filters, a kernel size of (3, 3), and a ReLU activation function. This layer expects an input shape of (28, 28, 1).
- Dropout: A dropout layer with a rate of 0.5, which helps prevent overfitting by randomly setting input units to 0 during training.
- MaxPooling2D: A 2D max pooling layer with a pool size of (2, 2), which reduces the spatial dimensions of the input.
- Conv2D: Another 2D convolutional layer with 16 filters, a kernel size of (3, 3), and a ReLU activation function.
- MaxPooling2D: Another 2D max pooling layer with a pool size of (2, 2).
- Flatten: A flatten layer that reshapes the input into a 1D array, which is necessary before passing it to the dense layers.
- Dropout: Another dropout layer with a rate of 0.5.
- Dense: A fully connected layer with 132 units and a ReLU activation function.
- Dense: The output layer, which is a fully connected layer with 10 units and a softmax activation function. This layer outputs the probability distribution over the 10 digits.
- Optimizer: Adam
- Loss function: Categorical sparse cross-entropy
- Dropout rate: 0.5
- Dropout
- Data Augmentation
- Width shift range=0.3
- Height_shift_range=0.3