#140·synaptic

Discussion: Synaptic 2.x

Author: JabherCreated Sep 12, 2016Updated Sep 23, 2022

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.