timeseriesAI / tsai

Time series Timeseries Deep Learning Machine Learning Python Pytorch fastai | State-of-the-art Deep Learning library for Time Series and Sequences in Pytorch / fastai
https://timeseriesai.github.io/tsai/
Apache License 2.0
4.91k stars 622 forks source link

Which models can I use? TSRegressor #887

Open callmesora opened 4 months ago

callmesora commented 4 months ago

I'm trying to use TSRegressor , I don't see on the documentation the list of compatible models. From the code I've managed to track down this list of models and their arch_names

Which of these can I use?

arch_names = ["FCN", "FCNPlus", "InceptionTime", "InceptionTimePlus", "InCoordTime", "XCoordTime", "InceptionTimePlus17x17", "InceptionTimePlus32x32", 
"InceptionTimePlus47x47", "InceptionTimePlus62x62", "InceptionTimeXLPlus", "MultiInceptionTimePlus", "MiniRocketClassifier", "MiniRocketRegressor", 
"MiniRocketVotingClassifier", "MiniRocketVotingRegressor", "MiniRocketFeaturesPlus", "MiniRocket", "MultiRocket", "MultiRocketPlus", "MiniRocketPlus", 
"MiniRocketHead", "InceptionRocketFeaturesPlus", "InceptionRocketPlus", "Hydra", "HydraPlus", "HydraMultiRocket", "HydraMultiRocketPlus", "MLP", "gMLP", 
"MultiInputNet", "OmniScaleCNN", "RNN", "LSTM", "GRU", "RNNPlus", "LSTMPlus", "GRUPlus", "RNN_FCN", "LSTM_FCN", "GRU_FCN", "MRNN_FCN", "MLSTM_FCN", 
"MGRU_FCN", "RNN_FCNPlus", "LSTM_FCNPlus", "GRU_FCNPlus", "MRNN_FCNPlus", "MLSTM_FCNPlus", "MGRU_FCNPlus", "PatchTST", "ROCKET", "RocketClassifier", 
"RocketRegressor", "ResCNN", "ResNet", "ResNetPlus", "TCN", "TSPerceiver", "TST", "TSTPlus", "MultiTSTPlus", "TSiT", "TSiTPlus", "TSSequencer", 
"TSSequencerPlus", "TabFusionTransformer", "TSTabFusionTransformer", "TabModel", "TabTransformer", "GatedTabTransformer", "TransformerModel", "XCM", 
"XCMPlus", "xresnet1d18", "xresnet1d34", "xresnet1d50", "xresnet1d101", "xresnet1d152", "xresnet1d18_deep", "xresnet1d34_deep", "xresnet1d50_deep", 
"xresnet1d18_deeper", "xresnet1d34_deeper", "xresnet1d50_deeper", "XResNet1dPlus", "xresnet1d18plus", "xresnet1d34plus", "xresnet1d50plus", 
"xresnet1d101plus", "xresnet1d152plus", "xresnet1d18_deepplus", "xresnet1d34_deepplus", "xresnet1d50_deepplus", "xresnet1d18_deeperplus", 
"xresnet1d34_deeperplus", "xresnet1d50_deeperplus", "XceptionTime", "XceptionTimePlus", "mWDN", "mWDNPlus", "RNNAttention", "LSTMAttention", 
"GRUAttention", "RNNAttentionPlus", "LSTMAttentionPlus", "GRUAttentionPlus", "TransformerRNNPlus", "TransformerLSTMPlus", "TransformerGRUPlus", 
"ConvTran", "ConvTranPlus"]
erickmiller commented 1 month ago

Hey @callmesora I'm not a maintainer of the project or anything, but I was looking for the answer to the same question -- and I think the answer is any model that ends with the word "Plus" (but I am still testing this theory currently) if I am correct that would reduce your list to:

tsregression_compatible = ['FCNPlus', 'InceptionTimePlus', 'InceptionTimePlus17x17', 'InceptionTimePlus32x32', 
'InceptionTimePlus47x47', 'InceptionTimePlus62x62', 'InceptionTimeXLPlus', 'MultiInceptionTimePlus', 
'MiniRocketFeaturesPlus', 'MultiRocketPlus', 'MiniRocketPlus', 'InceptionRocketFeaturesPlus', 'InceptionRocketPlus', 
'HydraPlus', 'HydraMultiRocketPlus', 'RNNPlus', 'LSTMPlus', 'GRUPlus', 'RNN_FCNPlus', 'LSTM_FCNPlus', 'GRU_FCNPlus', 
'MRNN_FCNPlus', 'MLSTM_FCNPlus', 'MGRU_FCNPlus', 'ResNetPlus', 'TSTPlus', 'MultiTSTPlus', 'TSiTPlus', 
'TSSequencerPlus', 'XCMPlus', 'XResNet1dPlus', 'XceptionTimePlus', 'mWDNPlus', 'RNNAttentionPlus', 
'LSTMAttentionPlus', 'GRUAttentionPlus', 'TransformerRNNPlus', 'TransformerLSTMPlus', 'TransformerGRUPlus', 
'ConvTranPlus']

My current theory is based on the answer from @oguiza found in this issue

Also, I am not sure if the models ending with a lowercase plus also work with regression, but I'm planning to test that probably also, although I'm most interested in testing the transformer models for now.