All the models here are coded using design pattern for models. The models are based on their corresponding research paper and presented in two design patterns:
- Idiomatic - procedural: for academic/educational audience.
- Composable (end in _c.py) - object oriented programming: for production audience.
The architecture representation of models consists of an overall macro-architecture and a micro-architecture.
The macro architecture consists of a stem (entry) group, a collection of groups (middle), and a classifier group (exit). The number of groups is defined by the macro architecture. The macro architecture may optionally contain a pre-stem, which perform additional operations, such as data preprocessing, model aggregation, and prediction post-processing.
The micro architecture consists of a collection of blocks, which collectively form a group. A block consists of an input and an output, and within the block is a set of layers connected by the block pattern. The number of blocks and the block pattern is defined by the meta-parameters (where parameters are the weights/biases learned, and hyper-parameters are the parameters used to train the model, but not part of the model).