andresnowak / dainemo

A Machine Learning framework from scratch in Mojo πŸ”₯

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Dainemo

A Machine Learning framework from scratch in Mojo πŸ”₯

Dainemo Logo

Examples Status

Task Dataset Forward Backward Training
REGRESSION βœ… βœ… βœ… βœ…
MNIST βœ… ❌ ❌ ❌

Regression example:

Dainemo Logo

Getting started

Running a regression example

mojo run -I . examples/housing.mojo

Compare to a alternative PyTorch implementation:
Install the requirements in python-requirements.txt

python examples/housing.py

Progress

❌: Not implemented
βœ…: Working (but might require changes because of not implemented dependencies)
WIP: Work in progress

Autograd

Task Status
NODE βœ…
GRAPH βœ…

Operators

Task Status
ADD βœ…
SUB βœ…
MUL βœ…
DIV βœ…
DOT βœ…
EXP βœ…
LOG βœ…
POW βœ…
SUM βœ…*
TRANSPOSE βœ…
FLATTEN βœ…
RESHAPE βœ…
CONV2D βœ…
CONV3D ❌
MAXPOOL2D ❌
MAXPOOL3D ❌

Loss Functions

Task Status
MSE βœ…
CE ❌
BCE ❌
SoftmaxCE ❌

Activations

Task Status
RELU ❌
SIGMOID ❌
TANH ❌
SOFTMAX ❌
LEAKYRELU ❌

Optimizers

Task Status
ADAM βœ…

Layers

Task Status
SEQUENTIAL ❌
LINEAR βœ…
DROPOUT ❌
CONV2D βœ…
CONV3D ❌
MAXPOOL2D ❌
MAXPOOL3D ❌

Other

Task Status
Model abstractions (eval/save/load/...) ❌
Datasets (MNIST/Boston Housing) βœ…
Dataloader βœ…
Tensorutils βœ…
Checkpoints ❌

Datasets

Task Original Included Kaggle CSV
Bosten Housing Dataset names, data kaggle
MNIST DataSet training images, training labels,
test images, test labels
(subset of) kaggle

Contributing

Policy WIP.

This project is in active development, and we welcome contributions:

  1. Fork the repository on GitHub.
  2. Create a new branch for your feature or bug fix.
  3. Commit your changes with clear, descriptive commit messages.
  4. Push your branch to GitHub and submit a pull request.

We appreciate any and all contributions, whether they're for bug fixes, new features, or documentation improvements.

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

Acknowledgements

A huge thanks to pranftw for the inspiration and support! This project is inspired by neograd.

About

A Machine Learning framework from scratch in Mojo πŸ”₯

License:Apache License 2.0


Languages

Language:Makefile 100.0%