quantlab.model.predefined.transformer.TransformerRegressor#

class quantlab.model.predefined.transformer.TransformerRegressor(config)[source]#

Bases: QlibSequenceHead

Qlib’s Transformer benchmark model on (bar, symbol) samples.

TransformerNet trained by Qlib’s time-series regimen (QlibSequenceHead: CSRankNorm target, MSE, gradient values clipped at 3, the best validation epoch kept), with Adam’s weight decay at Qlib’s reg. The Alpha158 benchmark config (workflow_config_transformer_Alpha158.yaml) keeps the model’s defaults, which are the defaults here: window_bars (20), d_model (64), nhead (2), num_layers (2), dropout (0.0), batch_size (8192), lr (1e-4), weight_decay (1e-3), epochs (100) and early_stop (5).

Known differences from Qlib’s implementation: as LSTMRegressor’s (the model’s own factors, clip and zero fill instead of a fitted RobustZScoreNorm and window fill, a per-bar validation loss, one output column per label).

Parameters:
configModelConfig

Factors, labels, dates and hyperparameters.

Examples

>>> TransformerRegressor(config).collect().train().name
'TransformerRegressor_total.pth'
DEFAULTS = {'batch_size': 8192, 'd_model': 64, 'dropout': 0.0, 'early_stop': 5, 'epochs': 100, 'lr': 0.0001, 'nhead': 2, 'num_layers': 2, 'weight_decay': 0.001, 'window_bars': 20}#

Every unset hyperparameter’s value; a head gives Qlib’s benchmark values.

net_cls#

The network class.

alias of TransformerNet