Open void-t-light-87 opened 2 years ago
Your validation data has no signal.
Your validation data has no signal.
Would you mind pointing out how it should be different? I was wondering about this from the tutorial. How does training work for TFT? Is it only using the validation data to compute error for training? Thanks a lot
https://www.geeksforgeeks.org/splitting-data-for-machine-learning-models/
Then do you know what https://pytorch-forecasting.readthedocs.io/en/latest/tutorials/stallion.html is supposed to do? In that example you only validate on the last sample as well.
https://www.geeksforgeeks.org/splitting-data-for-machine-learning-models/
Do you have any more input? I thought the TFT was using the encoder/prediction windows to train. So the validation of the network is the prediction window. In the tutorial the validation seems to be used as the test set, not as the dataset the model is using to train. You appear to be claiming that it is using the validation set used by val_dataloaders to train. Do you know this to be true?
The tutorial data contains thousands of samples and multiple time series in the validation set.
The tutorial data contains thousands of samples and multiple time series in the validation set.
It has exactly one set of samples per agency/sku combination in the validation set, of which there are 350. My validation set has 1 since I do not have multiple combinations of static categorical in my dataset. It sounds like you know how TFT is supposed to be set up to handle the example I am describing. Would you mind sharing the code that predicts the spikes on your machine? I'd like to see TFT do what any LSTM would do and show that it can predict that the target will go up after the signal rises. I did try to test on a dataset 100x larger and with 80/20 splits between test/validation. None work so far.
Thanks a lot
Hi,
I've been going through a set of smoke tests of the TFT model to see if it would work for my use case. I am able to train it on simple univariate sinusoids but any multivariate problem seems to fall apart immediately. For example the attached file just has two time series. One is called the signal and one the target. Every time the signal switches from 0 to 1 the target increases in magnitude. Otherwise the target stays as 1. An LSTM will quickly pick up on this this pattern and make a prediction but this model ignores it completely and continues to predict 1s. Is there something I should do differently? Attached is one of the examples I tried to run to train the model. I did try optuna optimizations as well and none converged so far.
Thanks