This repository contains the from-scratch/independent implementations of sequential Artificial Neural Networks with different architectures, then these networks will perform on different classification tasks and compare the results with an equivalent PyTorch implemented network.
The purpose of this note book is to provide the ability to implement Artificial Neual Networks (ANN) from scratch, or in other words, implement a ANN independent of existing frameworks such as tensorflow or PyTorch. The next step is about a shallow (not technical or exact) comparison between the independent model, and the equivalent model created by PyTorch in different tasks such as simple classification tasks and more complex classification tasks such as MNIST and CIFAR-10 classifications.
So if we want to picture an overview of what have been done in this notebook, it's plausible to divide it into the following parts:
- Definitions
- Classes for ANN
- Train and test functions
- Different loss and activation functions
- Implementations
- Train and evaluate two models (one is independent model, and the other is PyTorch based) on an artificial dataset made for classification tasks.
- Train and evaluate two models (one is independent model, and the other is PyTorch based) on MNIST dataset.
- Train and evaluate two models (one is independent model, and the other is PyTorch based) on CIFAR-10 dataset.