quantlab.model.predefined.transformer.TransformerNet#
- class quantlab.model.predefined.transformer.TransformerNet(num_features, num_labels, d_model=64, nhead=2, num_layers=2, dropout=0.0)[source]#
Bases:
ModuleQlib’s
Transformer(pytorch_transformer_ts.py) with an output of any width.Linear(F, D)embeds every bar, the sinusoidal position encoding is added,num_layersPyTorch encoder layers (feed-forward width 2048, post-norm, asnn.TransformerEncoderLayer’s defaults) attend over the N bars, andLinear(D, L)maps the last bar to the output. The parameter names are Qlib’s, so a Qlib state dict loads into a one-label net.- Parameters:
- num_featuresint
Features per bar,
F.- num_labelsint
Outputs per sample,
L; Qlib’s model has one.- d_modelint, default 64
D.- nheadint, default 2
Attention heads.
- num_layersint, default 2
Encoder layers.
- dropoutfloat, default 0.0
Dropout of the encoder layers.
Examples
>>> net = TransformerNet(num_features=4, num_labels=2, d_model=8) >>> net(torch.randn(5, 3, 4)).shape torch.Size([5, 2])