../fno

Fourier Neural Operator Expansion

4D Expansion (Time)

Since using Fourier Transform (Fast Fourier Transform (FFT) in implementation level), FNO is naturally able to deal with both space-domain and time-domain information.

By simply adding one more dimensions into Einsum (Einstein Summation Convention), it expands to a fixed Time-Space 4D structure.

# 3D with x,y,z
torch.einsum("bixyz,ioxyz->boxyz", input, weights)

# into 4D with x,y,z,t
torch.einsum("bixyzt,ioxyzt->boxyzt", input, weights)

 

Noticably, the weight parameter amount is multiplication relation to both modes and dimensions.

Here is an example:

ModesDimensionsParameter Amount
[12,30,30]312x30x30 = 10,800
[5,12,30,30]45x12x30x30 = 54,000
[5,6,15,15]45x6x15x15 = 6,750

 

FNO's ability is hidding inside extracted wavelets, it makes modes the most important hyperparameter to a FNO model. Other hyperparameters like number of layers, whether use residual connections and etc are incompetitive compare to modes.

Finding balance in a sufficient and efficient number of modes with available computation resources is a great question.

If modes appeared to be more important in the task or variant time steps is desired, please consider RNN, LSTM, Structured State Space or other time-series structure.