When testing GWNET, one issue was found when I increased the length of input windows.
Default settings are applicable only when the input_window is shorter than 12. People should adjust the number of blocks, number of layers, or kernel size, in order to ensure the final receptive field >= input_window. If not, the model performance would be low.
For example, when my input window is 24, the loss of the model under the default setting (blue curve) is much higher than the model with increased number of layers (orange curve). Since the default setting generates a receptive field = 13, which is greater than 12 but smaller than 24.
I added some codes to automatically adjust the number of layers based on the length of input windows. The idea is from equation 11 in the authors' other paper "Connecting the Dots: Multivariate Time Series Forecasting with Graph Neural Networks":
When testing GWNET, one issue was found when I increased the length of input windows.
Default settings are applicable only when the input_window is shorter than 12. People should adjust the number of blocks, number of layers, or kernel size, in order to ensure the final receptive field >= input_window. If not, the model performance would be low.
For example, when my input window is 24, the loss of the model under the default setting (blue curve) is much higher than the model with increased number of layers (orange curve). Since the default setting generates a receptive field = 13, which is greater than 12 but smaller than 24.
I added some codes to automatically adjust the number of layers based on the length of input windows. The idea is from equation 11 in the authors' other paper "Connecting the Dots: Multivariate Time Series Forecasting with Graph Neural Networks":
receptive_field = (1 + (kernel_size - 1) blocks (2 ** layers - 1)) >= input_window
Some testing code:
Which outputs:
As shown, the number of layers can be auto-adjusted based on the length of input windows.