Unify experiment comparison protocol + real-data grid figure pipeline - #50
Open
johmathe wants to merge 3 commits into
Open
Unify experiment comparison protocol + real-data grid figure pipeline#50johmathe wants to merge 3 commits into
johmathe wants to merge 3 commits into
Conversation
…pipeline Addresses figure feedback: consistent "Aug. CNN" (R-trained) baselines and OOD y-labels across rows, a single power-spectrum entry whose capacity curve covers the bispectrum budget, norm-pool (power-spectrum analog) baseline for PCam, full method coverage in every panel, and a caption justifying the Cohen S2CNN published-reference line. - pcam: new norm_pool model variant (GroupNormPool as final invariant pool), sweep scripts retrained per protocol (standard=R, invariants=C, rotation eval always on) - spherical_mnist: new run_capacity_sweep.sh (accuracy-vs-params curves); matched power-spectrum concept removed - organ3d: all 4 models in data-efficiency and capacity sweeps, 3 seeds; redundant run_tier1_sweep.sh removed - experiments/make_grid_figure.py: single figure entry point with results.json loaders + --mock layout preview, replaces make_mock_grid_panels.py; emits caption.txt - experiments/README.md: run matrix, tmux commands, rsync instructions for external GPU machines Co-authored-by: Cursor <cursoragent@cursor.com>
…ks hatchling builds) Co-authored-by: Cursor <cursoragent@cursor.com>
…ers) Co-authored-by: Cursor <cursoragent@cursor.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #50 +/- ##
=======================================
Coverage 95.46% 95.46%
=======================================
Files 11 11
Lines 2227 2227
=======================================
Hits 2126 2126
Misses 101 101 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
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.
Summary
Addresses the figure feedback and unifies the comparison protocol across all three experiments (PCam, OrganMNIST3D, Spherical MNIST). No experiments were run in this PR — sweeps are meant to run on separate GPU machines (see
experiments/README.mdfor the run matrix, tmux commands, and rsync instructions).Unified protocol
train_mode R) and labeled "Aug. CNN" everywhere (feedback Update general API and add cg coefficients #3).train_mode C); rotation (OOD) evaluation is always on.power_spectrum_matchedremoved; the capacity sweep now extends the regular power-spectrum curve to the bispectrum's max budget (feedback Fix indices in the bsp #4).Code changes
norm_poolmodel variant — equivariant DenseNet with the previously-unusedGroupNormPoolas final invariant pool (matched-architecture incomplete-invariant ablation, analog of Organ3D'snorm_pool/ SMNIST's power spectrum). Wired intotrain.pyand both sweep scripts.run_capacity_sweep.sh(2 models × 5 widths × 3 seeds, C-trained); PS widths reach ~550K params to cover the bispectrum budget (~529K). Matched-run concept removed fromanalyze_results.py.norm_pooland R-trainedstandard) now covered in the data-efficiency and capacity sweeps, 3 seeds each; redundantrun_tier1_sweep.shdeleted; skip-check dir names fixed to matchtrain.pyoutput naming.experiments/make_grid_figure.pyreplacesmake_mock_grid_panels.py— same render path fed byresults.jsonloaders,--mockflag for layout previews (watermarked), emitscaption.txtwith the S²CNN justification.experiments/README.mdwith the full run matrix for external GPU machines.Sanity checks run (no training)
norm_poolmodel builds, forward/backward, exact C8 invariance (gap = 0.0), param count matchesfourier_elu(109,815).make_grid_figure.py --mockrenders; real-data path verified end-to-end against a synthetic results tree exercising every runner's output layout.ruff checkclean;bash -non all runner scripts.Test plan
experiments/README.mdrsyncresults back and runpython experiments/make_grid_figure.pyMade with Cursor