Skip to content
/ dainemo Public
forked from basalt-org/basalt

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

License

Notifications You must be signed in to change notification settings

jackos/dainemo

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

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 βœ…
MAX βœ…
TRANSPOSE βœ…
FLATTEN βœ…
RESHAPE βœ…
CONV2D βœ…
CONV3D ❌
MAXPOOL2D βœ…
MAXPOOL3D ❌

Loss Functions

Task Status
MSE βœ…
CE βœ…

Activations

Task Status
RELU βœ…
SIGMOID βœ…
TANH βœ…
SOFTMAX βœ…
LOGSOFTMAX βœ…
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 πŸ”₯

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • Python 57.1%
  • Makefile 42.9%