Phần 1
Softmax Regression
Flatten → Linear(3072→100). Mô hình tuyến tính đơn giản nhất.
Phần 1
MLP
Flatten → FC(512) → FC(256) → FC(100) + BN + Dropout.
Phần 1
SimpleCNN
3 ConvBlocks (32→64→128) + AdaptiveAvgPool + Classifier.
Phần 1 & 3
SimpleViT (PyTorch)
64 patches 4×4, d=128, 4 heads, 4 layers dùng nn.TransformerEncoder.
Phần 3
CustomViT
Cùng kiến trúc SimpleViT nhưng dùng CustomTransformerEncoder tự xây với einsum.
Phần 4
CNN+Transformer
CNN backbone → 64 spatial feature tokens → 2-layer Transformer.
Phần 4
SpatialToken ViT
1024 pixel tokens (H×W positions), d=64, 2 layers. O(1024²) attention.
Phần 4
ChannelToken ViT
64 channel tokens (C-axis), spatial features projected to d=128.
Phần 5
LSTM-row
BiLSTM, seq=(32 rows, 96 features), hidden=256, 2 layers.
Phần 5
LSTM-patch4
BiLSTM, seq=(64 patches 4×4, 48 features), hidden=256.
Phần 5
GRU-row
BiGRU, seq=(32 rows, 96 features), hidden=256. Đơn giản hơn LSTM.
Phần 5
GRU-patch4
BiGRU, seq=(64 patches 4×4, 48 features), hidden=256.