The model/
configs largely follow the structure of the src/models/
code folder.
Top-level configs use the model backbone structure specified by this repository.
These models consist of backbones that are composed of repeatable blocks of core layers.
The backbones include a simple isotropic residual backbone (in the style of ResNets and Transformers) (base.yaml
) and variations of UNet structures (unet.yaml
, sashimi.yaml
).
Layers configs are defined in model/layer/
. Each one of these instantiates a src.models.sequence.base.SequenceModule
which maps an input sequence to output sequence, and can be passed into the various backbones.
Older versions of HiPPO focused on RNNs, and defined a flexible RNN layer in model/layer/rnn.yaml
. This RNN accepts any RNN cell, with example configs in model/layer/cell/
.
Some examples of full models are provided which combine a backbone with a choice of inner layer, such as convnet1d.yaml
(a simple 1D residual convnet), s4.yaml
(basic isotropic S4 model), and transformer.yaml
(isotropic Transformer model composed of alternating layers of self-attention and feed-forward network).
Other baseline models are included that do not necessarily follow this structure.
baseline/ Miscellaneous baselines from the literature
nonaka/ 1-D CNN models ported from the paper [Nonaka, Seita]
"In-depth Benchmarking of Deep Neural Network Architectures for ECG Diagnosis"
(https://github.com/seitalab/dnn_ecg_comparison)
segmentation/ Segmentation models (preliminary)
timm/ Ports of timm ResNet and ConvNext models
vit/ Ports of vit models