Files
DOLPHIN/nautilus_dolphin/dvae/exp13_v2_launcher.py

47 lines
1.9 KiB
Python
Raw Normal View History

"""
exp13_v2_launcher.py Run exp13 multiscale sweep with convnext_model_v2.json (ep=13).
Changes vs default exp13:
- MODEL_1M convnext_model_v2.json (calibration-fixed, always-positive z[13])
- PROXY_B_DIM 13 (z[13] is proxy_B dim in v2, vs z[10] in ep=17)
Everything else identical to exp13_multiscale_sweep.py.
Results logged to ../../exp13_v2_screening_run.log
Usage (from nautilus_dolphin/ dir):
python dvae/exp13_v2_launcher.py --subset 14 --top_k 20 # Phase 1 screening
python dvae/exp13_v2_launcher.py --subset 0 --top_k 0 # Full 56-day run
Why v2 should be better:
ep=17 z[10]: ALWAYS NEGATIVE [-1.24, -0.30] direct scaling configs hurt
v2 z[13]: ALWAYS POSITIVE [+0.17, +1.46] direct scaling configs work correctly
Separation (proxy_B quartiles): 0.46 (ep=17) 0.61 (v2) 32% improvement
"""
import sys, os
from pathlib import Path
ROOT = Path(__file__).resolve().parent.parent.parent
sys.path.insert(0, str(ROOT / 'nautilus_dolphin'))
# ── patch model path and proxy_B dim before importing main ───────────────────
MODEL_V2 = ROOT / 'nautilus_dolphin' / 'dvae' / 'convnext_model_v2.json'
PROXY_B_V2 = 13 # z[13] r=+0.9332 for v2 ep=13 (auto-confirmed by proto_v2_query.py)
assert MODEL_V2.exists(), f"v2 model not found: {MODEL_V2}"
import dvae.exp13_multiscale_sweep as e13
import dvae.convnext_sensor as cs
# Patch module-level constants before main() runs
e13.MODEL_1M = MODEL_V2
e13.PROXY_B_DIM = PROXY_B_V2
cs.PROXY_B_DIM = PROXY_B_V2 # sensor module also exports this
print(f"[v2-launcher] MODEL_1M → {MODEL_V2.name}")
print(f"[v2-launcher] PROXY_B_DIM → {PROXY_B_V2} (was 10)")
print(f"[v2-launcher] v2 ep=13 val=18.002 z[13] r=+0.933 calibration=ALWAYS_POSITIVE")
print()
if __name__ == '__main__':
e13.main()