Skip to content
CryAndRRichPublic

About

Building a simple deep learning framework and some machine learning/deep learning models from scratch (pure Numpy and Pytorch)

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

148 Commits

Folders and files

Repository files navigation

Machine Learning/Deep Learning

This repository consists of two main parts: a simple deep learning framework (npmod) and some basic machine learning/deep learning models (models). Since this is for learning purposes, everything is built from scratch using NumPy and PyTorch

All datasets used to test the models can be found via the links provided at the end of this README

npmod: NumPy module

A simple deep learning framework built using pure NumPy

npmod/nn/
├── layers/
│   ├── flatten
│   ├── dropout
│   ├── dropconnect
│   ├── embedding
│   ├── linear
│   ├── conv
│   ├── pooling
│   ├── batchnorm
│   ├── groupnorm
│   └── weightnorm
│   
├── rnn/
│   ├── rnn
│   ├── lstm
│   └── gru
│
├── activations/
│   ├── relu/
│   │   ├── relu
│   │   ├── leaky_relu
│   │   ├── prelu
│   │   ├── elu
│   │   ├── selu
│   │   └── relu6
│   │
│   ├── sigmoid/
│   │   ├── sigmoid
│   │   ├── hard_sigmoid
│   │   └── log_sigmoid
│   │
│   ├── tanh/
│   │   ├── tanh
│   │   └── hard_tanh
│   │
│   ├── softmax/
│   │   ├── softmax
│   │   └── log_softmax
│   │
│   └── smooth/
│       ├── gelu
│       ├── swish
│       ├── hard_swish
│       ├── softplus
│       └── mish
│
├── container/
|   └── sequential
│
├── losses/
│   ├── regression/
│   │   ├── mae
│   │   ├── mse
│   │   ├── male
│   │   ├── rsquared
│   │   ├── mape
│   │   ├── wmape
│   │   ├── smoothl1
│   │   ├── huber
│   │   ├── logcosh
│   │   └── quantile
│   │
│   ├── classification/
│   │   ├── ce
│   │   ├── bce
│   │   ├── focalloss
│   │   ├── labelsmoothingce
│   │   └── diceloss
│   │
│   ├── divergence/
│   │   ├── kldiv
│   │   ├── jsdiv
│   │   └── wasserstein
│   │
│   └── ranking/
│       ├── __init__
│       ├── hinge_embedding
│       ├── margin_ranking
│       └── triplet_margin
│
└── optimizer/
    ├── classical/
    │   ├── gd              
    │   └── sgd             
    │
    ├── adaptive/
    │   ├── adagrad
    │   ├── rmsprop
    │   ├── adam
    │   ├── adamw
    │   ├── radam
    │   ├── adabelief
    │   └── lookahead
    │
    └── modern/
        ├── lamb
        ├── novograd
        ├── ranger
        ├── apollo
        ├── sophia
        └── lion

models:

Every model is built using NumPy or PyTorch

models/
├── supervised/
│   ├── classification/
│   │   ├── decision_tree/
│   │   │   ├── id3, c4.5, c5.0
│   │   │   ├── cart
│   │   │   ├── chaid
│   │   │   ├── cits
│   │   │   ├── oc1
│   │   │   └── quest, tao
│   │   │
│   │   ├── k_nearest_neighbors
│   │   ├── logistic_regression
│   │   ├── naive_bayes/
│   │   │   ├── gaussian
│   │   │   ├── multinomial
│   │   │   ├── bernoulli
│   │   │   └── categorical
│   │   │
│   │   ├── perceptron_learning
│   │   ├── softmax_regression
│   │   └── support_vector_machines
│   │
│   ├── regression/
|   |   ├── decision_tree
│   │   ├── k_nearest_neighbors
│   │   ├── elastic_net/
│   │   │   ├── lasso_regression
│   │   │   └── ridge_regression
│   │   │
│   │   ├── generalized_linear_model
│   │   ├── huber_regression
│   │   ├── stepwise_regression
│   │   ├── theilsen_regression
│   │   ├── bayes_linear_regression
│   │   └── linear_regression
│   │
│   └── ensemble/
│       ├── bagging/
│       |   └── random_forest
│       |   
|       └── boosting/
│           ├── gradient_boosting
│           ├── adaboost
│           ├── lightgbm
│           ├── xgboost
│           └── catboost
│
├── unsupervised/
│   ├── clustering/
|   |   ├── partition_based/
|   |   |   ├── k_means
|   |   |   ├── k_medians
|   |   |   ├── k_medoids
|   |   |   ├── ik_means
|   |   |   └── affinity_propagation
|   |   |
│   │   ├── tree_based/
|   |   |   ├── agglomerative
|   |   |   ├── divisive
|   |   |   ├── cure
|   |   |   └── chameleon
|   |   |
│   │   ├── density_based/
|   |   |   ├── dbscan
|   |   |   ├── hdbscan
|   |   |   ├── denclue
|   |   |   └── optics
|   |   |
│   │   ├── grid_based/
|   |   |   ├── gridclus
|   |   |   ├── sting
|   |   |   ├── waveclus
|   |   |   ├── gdilc
|   |   |   └── amr
|   |   |
│   │   ├── graph_based/
|   |   |   └── spectral_clustering
|   |   |
│   │   └── model_based/
|   |       ├── bayesian_gaussian_mixture_model
|   |       └── gaussian_mixture_model
|   |  
│   └── dimensionality_reduction/
|       ├── linear/
|       |   ├── pca
|       |   ├── lda
|       |   └── nmf
|       |
│       └── model_based/
|           ├── isomap
|           ├── lle
|           ├── mds
|           ├── se
|           ├── t_sne
|           └── umap
|
└── deep_learning/
    ├── mlp
    │
    ├── cnn/
    │   ├── lenet
    │   ├── alexnet
    │   ├── nin
    │   ├── vgg
    │   ├── googlenet
    │   ├── resnet
    │   ├── squeezenet
    │   ├── resnext
    │   ├── xception
    │   ├── densenet
    │   ├── wideresnet
    │   ├── mobilenet
    │   ├── nasnet
    │   ├── shufflenet
    │   ├── efficientnet
    │   ├── regnet
    │   ├── ghostnet
    │   └── micronet
    │
    ├── rnn/
    │   ├── lstm
    │   ├── gru
    │   ├── mgu
    │   ├── ugrnn
    │   ├── rhn
    │   ├── sru
    │   ├── janet
    │   ├── indrnn
    │   ├── ran
    │   ├── scrn
    │   └── yamrnn
    │
    ├── transformer/
    │   ├── transformer/
    |   |   ├── positional_encoding/
    |   |   |   ├── sinusoidal
    |   |   |   ├── learned
    |   |   |   ├── relative
    |   |   |   ├── rotary
    |   |   |   └── alibi
    |   |   |  
    |   |   ├── normalization/
    |   |   |   ├── layernorm
    |   |   |   ├── rmsnorm
    |   |   |   ├── scalenorm
    |   |   |   └── adanorm  
    |   |   |  
    |   |   ├── attention/
    |   |   |   ├── scaled_dot
    |   |   |   ├── linformer
    |   |   |   ├── performer
    |   |   |   ├── local
    |   |   |   ├── sparse
    |   |   |   └── cosine    
    |   |   |  
    |   |   ├── feed_forward/
    |   |   |   ├── relu
    |   |   |   ├── gelu
    |   |   |   ├── geglu
    |   |   |   ├── swiglu
    |   |   |   ├── glu
    |   |   |   ├── conformer
    |   |   |   └── dropconnect    
    |   |   |  
    |   |   └── learn_rate/
    |   |       ├── noam
    |   |       ├── cosine
    |   |       ├── linear
    |   |       ├── inverse_sqrt
    |   |       ├── polynomial
    |   |       └── constant    
    |   |
    |   └── vit/
    |       ├── vit
    |       ├── deit
    |       └── swin
    |
    ├── gan/
    |   ├── gan
    |   ├── dcgan
    |   ├── lapgan
    |   ├── wgan
    |   ├── progan
    |   ├── biggan
    |   └── stylegan
    │     
    ├── autoencoder/
    │   ├── ae
    │   ├── regularized_ae
    │   ├── convolutional_ae
    │   ├── vae
    │   ├── aae
    │   ├── vq_vae
    │   └── mae
    │     
    └── diffusion/
        ├── unconditional/
        |   └── ddim
        |
        └── conditional/
            ├── sd1.5, sd3
            ├── flux
            ├── hunyuan
            └── kandinsky

data:

data/
├── brisc2025.zip                       # https://arxiv.org/abs/2506.14318
├── cifar10.zip                         # https://www.kaggle.com/datasets/valentynsichkar/cifar10-preprocessed
├── clouds.zip                          # https://www.kaggle.com/datasets/jockeroika/clouds-photos
├── Country-data.csv                    # https://www.kaggle.com/datasets/rohan0301/unsupervised-learning-on-country-data
├── diabetes.csv                        # https://www.kaggle.com/datasets/abdallamahgoub/diabetes
├── dSprites.zip                        # https://github.com/google-deepmind/dsprites-dataset
├── ffhq.zip                            # https://www.kaggle.com/datasets/arnaud58/flickrfaceshq-dataset-ffhq
├── fitness_dataset.csv                 # https://www.kaggle.com/datasets/muhammedderric/fitness-classification-dataset-synthetic
├── pokemon-dataset-10000.zip           # https://www.kaggle.com/datasets/noodulz/pokemon-dataset-1000
├── rem.zip                             # https://www.kaggle.com/datasets/andy8744/rezero-rem-anime-faces-for-gan-training
├── satellite.zip                       # https://www.kaggle.com/datasets/mahmoudreda55/satellite-image-classification
├── star_classification.csv             # https://www.kaggle.com/datasets/fedesoriano/stellar-classification-dataset-sdss17
├── Student_Performance.csv             # https://www.kaggle.com/datasets/nikhil7280/student-performance-multiple-linear-regression
├── synthetic_coffee_health_10000.csv   # https://www.kaggle.com/datasets/uom190346a/global-coffee-health-dataset
├── tom_and_jerry.zip                   # https://www.kaggle.com/datasets/balabaskar/tom-and-jerry-image-classification
├── weather5k.zip                       # https://arxiv.org/abs/2406.14399
└── wmt-2014-english-german.zip         # https://www.kaggle.com/datasets/mohamedlotfy50/wmt-2014-english-german

About

Building a simple deep learning framework and some machine learning/deep learning models from scratch (pure Numpy and Pytorch)

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages