Just like jamming in music, I jam in code with NN. Same as in music, this help me create cool stuffs, grok things better, and therapeutic at the same time.
It is open so that it is convenient to share part of it with my friends. After the projects are matured, I will separate them out to be proper open source projects.
Just like instruments, too many dependency would create a mess and ruin the fun, I use Python3.8+ with 5 delightful libraries for all the projects:
numpy
brings the goodness of Matlab-style array programming to everyonetqdm
saves time for writing a nice-looking progress bareinops
linear algebra has a notation, and we need to fix thatbokeh
an opinionated plotting library, web-animation friendlyjax
I was just expecting a reincarnation of TF1.x, not realizing the goodness ofvmap
s andpytree
support 😲
It is a lossless definition of data structure of all obtainable numeric data.
A port is a sender or a receiver that takes/outputs variable of a certain protocol.
A model has several ports that can send or receive data. It also contains a process to receive data in some ports and send out in others.
The model aim to be performing good.
An audition is to test the basic-level performance of a model.
It consists of three projects currently, there are *.md docs for each:
This defines the protocols for variables, and transformation of variables. Every other projects may refer to the protocols defined here.
This project is not here yet, but currently I met a major design obstacle and it is in a minimal usable state.
This project is to provide good interfaces to test models with benchmarks. It was called supervised benchmarks because my original design was targeted at supervised learning. But it is hard to say that self-supervise learning is not unsupervised learning right?
This is a mini-framework for data modeling using jax the delightful library. It will be used to make models, test in audition.
The project is the origin of all current projects, it depends on a moderate implementation level of all three of them. The idea of this project is written in another repo.
and more.. it may end up being a GUI project or a DSL for data modeling, or I will end up using Elixir for nicer concurrency and metaprogramming, who knows?