Track prognostic resolution across autoregressive rollout steps#703
Draft
alxmrs wants to merge 2 commits into
Draft
Track prognostic resolution across autoregressive rollout steps#703alxmrs wants to merge 2 commits into
alxmrs wants to merge 2 commits into
Conversation
e0605e6 to
166410d
Compare
aaa9b28 to
c4d7aab
Compare
Member
Author
|
@codex may I have a review? |
|
Codex Review: Didn't find any major issues. What shall we delve into next? ℹ️ About Codex in GitHubCodex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
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". |
166410d to
16f4e08
Compare
c4d7aab to
f090d24
Compare
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>
16f4e08 to
bb37bc4
Compare
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
f090d24 to
ba04229
Compare
bb37bc4 to
56115ed
Compare
Member
|
I'm going to mark this as a draft until we get the previous PR in the stack landed. |
56115ed to
429d0a4
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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