home/ atoms/ rave-phase1-duration-fixed

RAVE's phase 1 length is a fixed step count, not a quality-based stopping criterion

Unlike training procedures where you stop when validation loss plateaus, RAVE’s transition from phase 1 to phase 2 is triggered by a step counter — the model’s phase_1_duration argument (stored as self.warmup), set per config (1,000,000 in v1/v2, lower in some configs like discrete/spherical). Training then continues until max_steps (default 6,000,000) or the user stops it. This means you cannot reliably shorten phase 1 by observing metrics: the encoder needs enough time to establish a stable, structured latent space before the discriminator is introduced. Starting phase 2 too early typically causes training instability or poor latent structure.

Examples

The WarmupCallback increments a step counter each step and flips pl_module.warmed_up = True when training_steps >= pl_module.warmup. Override phase 1 length via a gin --override on phase_1_duration.

Assessment

A researcher sets max_steps=200000 for a quick experiment on a v2 config. Will they see any adversarial training? What would they need to also change?

“class WarmupCallback(pl.Callback):”
corpus · rave-realtime-audio-variational-autoencoder-train-your-own-n · chunk 20