This repository contains various machine learning projects and algorithm implementations, which I create for fun and learning. This is just a hub for my personal interests and experiments.
The repo has a folder "algo" for various algorithms. Other folders are dedicated to different projects.
Note
Each project within this repository may have additional setup or instructions. Please refer to the
README.md
file within each project's directory for more specialized guidance.
-
SpliceAI: A reimplementation of SpliceAI algorithm based on paper
-
Mikrograd: A minimal autograd engine based on micrograd by
Andrej Karpathy
-
Makemore: A tool for generating synthetic data. Based on the makemore by
Andrej Karpathy
-
RuPoemGPT: A character-level language model trained on a collection of russian poems. Based on the nanoGPT by
Andrej Karpathy
Also here are some older projects, which were not included into this repository:
Note, that this repo has shared python environment, which is defined in Pipfile
. The reason is
simple - all projects are simple enough to have only standard dependencies with no conflicts.
Note
Some algorithms are implemented in different languages, e.g. C++. The notes how to run them are in the corresponding folders.
These instructions will help you set up the python env for the repo, if you want to run the code
locally. I'll use pyenv
and pipenv
for this, but you can use any other tools you like.
Ensure you have pyenv
and pipenv
installed on your system. If not, follow these steps:
-
Install
pyenv
:curl https://pyenv.run | bash
-
Install
pipenv
:pip install pipenv
Follow these steps to get your development environment running:
-
Clone the repository:
git clone https://github.com/gromdimon/stronghold.git
-
Navigate to the project directory:
cd stronghold
-
Set the local Python version using
pyenv
:pyenv install 3.12
-
Install
pipenv
for the local Python version:pip install --user pipenv
-
Install dependencies using
pipenv
:pipenv install
-
Activate the
pipenv
environment:pipenv shell
Distributed under the MIT License, so you can use it for any purpose :)