So, we want to make Synaptic more mature.
I've created a design draft to think on it.
https://github.com/cazala/synaptic/wiki/Design-draft:-2.x-API
Let's discuss.
The most significant changes in design:
- Pre-built architectures are dropped. Examples will be provided and should be used instead.
They are actually an examples of "how-to" and so they are usually useless for real projects.
- biggest API parts (activate, train etc) are async now.
- Every "moving part" used by an API is placed separately, and so if NN is simply created and loaded - there will be no need in trainer, optimization objectives, optimizers and everything else required for training. This is very useful for a client run, when only activation is needed without any training.
- Multiple back-ends are supported. Each of them has its own strengths and weaknesses.
- API fingerprint is as small as possible now.
- Lot of stuff is configurable, lot of staff is pre-built.
So, we want to make Synaptic more mature.
I've created a design draft to think on it.
https://github.com/cazala/synaptic/wiki/Design-draft:-2.x-API
Let's discuss.
The most significant changes in design:
They are actually an examples of "how-to" and so they are usually useless for real projects.