Skip to content

Track prognostic resolution across autoregressive rollout steps#703

Draft
alxmrs wants to merge 2 commits into
u/alxmrs/kr2/2-dual-perceiverfrom
u/alxmrs/kr2/3-autoregressive-resolution
Draft

Track prognostic resolution across autoregressive rollout steps#703
alxmrs wants to merge 2 commits into
u/alxmrs/kr2/2-dual-perceiverfrom
u/alxmrs/kr2/3-autoregressive-resolution

Conversation

@alxmrs

@alxmrs alxmrs commented Apr 15, 2026

Copy link
Copy Markdown
Member

In BaseModel.forward and BaseModel.inference, update ctx.input_resolution_cpu to output_resolution_cpu from step 1 onward. The prognostic tensor fed back is the previous decoder output, which sits on the output grid — the encoder's positional encoding must match. This is a no-op when input and output resolutions are equal (match schedule).

Without this fix, multi-step mix-schedule training would use incorrect positional features from step 1 onward, and would crash with 3D coordinates enabled (shape mismatch).

This is https://github.com/Open-Athena/Ocean_Emulator/pull/681 broken up into a stack of three small PRs. 3/3

@alxmrs alxmrs force-pushed the u/alxmrs/kr2/2-dual-perceiver branch from e0605e6 to 166410d Compare April 15, 2026 02:41
@alxmrs alxmrs force-pushed the u/alxmrs/kr2/3-autoregressive-resolution branch from aaa9b28 to c4d7aab Compare April 15, 2026 02:41
@alxmrs alxmrs marked this pull request as ready for review April 15, 2026 02:47
@alxmrs alxmrs requested a review from jder April 15, 2026 02:47
@alxmrs

alxmrs commented Apr 15, 2026

Copy link
Copy Markdown
Member Author

@codex may I have a review?

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. What shall we delve into next?

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

@alxmrs alxmrs force-pushed the u/alxmrs/kr2/2-dual-perceiver branch from 166410d to 16f4e08 Compare April 22, 2026 19:03
@alxmrs alxmrs force-pushed the u/alxmrs/kr2/3-autoregressive-resolution branch from c4d7aab to f090d24 Compare April 22, 2026 19:05
Replace the single-stream PerceiverEncoder with a dual-perceiver
architecture: separate Perceivers for prognostic and boundary streams,
fused via concat→Linear projection. Because patch_extent is in degrees,
both streams produce the same latent grid regardless of their spatial
resolution, enabling cross-resolution forward passes (e.g. ¼° prog
with 1° boundary).

FOMO.forward_once now passes prog and boundary separately to the
encoder instead of concatenating. 3D coordinates are appended to the
prognostic stream only.

Config: EncoderConfig gains a boundary_perceiver field (default depth=2,
num_latents=64). PerceiverConfig.build outputs latent_dim (pooled)
instead of out_channels.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@alxmrs alxmrs force-pushed the u/alxmrs/kr2/2-dual-perceiver branch from 16f4e08 to bb37bc4 Compare April 22, 2026 22:11
In BaseModel.forward and BaseModel.inference, update
ctx.input_resolution_cpu to output_resolution_cpu from step 1 onward.
The prognostic tensor fed back is the previous decoder output, which
sits on the output grid — the encoder's positional encoding must match.
This is a no-op when input and output resolutions are equal (match
schedule).

Without this fix, multi-step mix-schedule training would use incorrect
positional features from step 1 onward, and would crash with 3D
coordinates enabled (shape mismatch).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

# Conflicts:
#	src/ocean_emulators/models/base.py
@alxmrs alxmrs force-pushed the u/alxmrs/kr2/3-autoregressive-resolution branch from f090d24 to ba04229 Compare April 22, 2026 22:46
@alxmrs alxmrs force-pushed the u/alxmrs/kr2/2-dual-perceiver branch from bb37bc4 to 56115ed Compare April 24, 2026 21:12
@jder

jder commented Apr 29, 2026

Copy link
Copy Markdown
Member

I'm going to mark this as a draft until we get the previous PR in the stack landed.

@jder jder marked this pull request as draft April 29, 2026 17:54
@alxmrs alxmrs force-pushed the u/alxmrs/kr2/2-dual-perceiver branch from 56115ed to 429d0a4 Compare April 29, 2026 22:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants