One-dimensional real-FFT FNO blocks #
The dense reference and native cuFFT paths share every parameter. Each block stores real and
imaginary spectral weights, a pointwise skip matrix, and a bias, in that order. The spectral
weights have shape [modes, width, width]; unlike the full-DFT model, they do not store separate
negative-frequency parameters.
def
Runtime.Autograd.Model.Layers.FNO.rfftBlock
(grid width modes : ℕ)
(hgrid : 0 < grid)
(hwidth : 0 < width)
(hmodes : modes ≤ grid / 2 + 1)
(path : F.SpectralPath := F.SpectralPath.automatic)
(activation : Activation.Kind := Activation.Kind.relu)
(spectralRealSeed spectralImagSeed skipWeightSeed : ℕ := 0)
:
One-sided spectral block followed by a pointwise skip connection and an activation.
The default ReLU and parameter order agree with Cuda.Fno1dRfftFused. Comparisons must still
load the same parameter tensors: independently seeded builders need not draw the same values.
Changing only path preserves the function and the checkpoint layout.