Fourier Neural Operators #
fno is polymorphic in spatial rank and uses separable FFTs or a dense multidimensional DFT with
the same real/imaginary weights. fnoRfft uses learned nonnegative-frequency weights and chooses a
dense reference and native cuFFT with the same checkpoint. Its default ReLU and parameter layout
match the specialized CUDA Burgers model. The two constructors have different spectral weights;
switching between them requires an explicit model conversion.
Reference: Zongyi Li et al., Fourier Neural Operator for Parametric Partial Differential Equations, ICLR 2021.
Configuration for a scalar-field FNO over d spatial axes.
Size of each sampled grid axis.
- width : ℕ
Width of the latent channel representation.
- layerCount : ℕ
Number of spectral residual blocks.
- activation : Activation.Kind
Activation applied after each spectral residual block.
- spectralPath : Runtime.Autograd.Model.F.SpectralPath
Per-axis FFT execution or the dense full-grid reference, with the same parameters.
Instances For
Build a multidimensional FNO model, independently of spatial rank and batch shape.
automatic uses separable transforms, with cuFFT on supported eager CUDA interpreters and dense
per-axis transforms otherwise. denseReference uses the full-grid DFT matrices. Both paths retain
the full-spectrum parameterization, frequency mask, activation, and checkpoint layout.
Instances For
Instances For
Configuration for the one-dimensional, one-sided spectral FNO.
- grid : ℕ
Number of spatial samples per scalar field.
- modes : ℕ
Number of nonnegative frequencies with learned channel maps, including DC.
- width : ℕ
Number of hidden channels at each spatial sample.
- layerCount : ℕ
Number of spectral residual blocks.
- spectralPath : Runtime.Autograd.Model.F.SpectralPath
Execution choice; both paths use the same weights and Fourier normalization.
- activation : Activation.Kind
Activation after each spectral residual block.
Instances For
Build an FNO whose dense and native paths have identical one-sided spectral semantics.
Parameters are ordered as lift weight/bias, each block's real weight/imaginary weight/skip/bias, and project weight/bias. This is the layout used by the specialized CUDA model. To compare the runners, supply the same parameter tensors and loss, rather than assuming equal seeds suffice.