malkhut(e2e): CMA-ES every 20 cycles, crash-safe gc.collect()

This commit is contained in:
Codex
2026-07-15 00:34:50 +02:00
parent 67b3268b98
commit bbaceffb61

View File

@@ -385,8 +385,8 @@ def main():
import traceback import traceback
traceback.print_exc() traceback.print_exc()
# Phase 2: CMA-ES every 10 cycles (memory-heavy — keep infrequent) # Phase 2: CMA-ES every 20 cycles (memory-heavy — keep very infrequent)
if cycle % 10 == 0 and remaining > 600 and recent_episodes >= 20: if cycle % 20 == 0 and remaining > 900 and recent_episodes >= 20:
phase = f"CYCLE {cycle} — CMA-ES" phase = f"CYCLE {cycle} — CMA-ES"
cma_scenarios = rng.sample(all_scenarios, min(3, len(all_scenarios))) cma_scenarios = rng.sample(all_scenarios, min(3, len(all_scenarios)))
try: try:
@@ -398,11 +398,11 @@ def main():
cma_bests.append(best) cma_bests.append(best)
if best.score > params.w_expected_pnl * 10: if best.score > params.w_expected_pnl * 10:
params = best.params params = best.params
# Explicitly free CMA-ES state
del best del best
import gc; gc.collect() import gc; gc.collect()
except Exception as e: except Exception as e:
print(f" CMA-ES error (cycle {cycle}): {e}", flush=True) print(f" CMA-ES error (cycle {cycle}): {e}", flush=True)
import gc; gc.collect()
# Periodic report from rolling stats # Periodic report from rolling stats
elapsed = time.time() - t_start elapsed = time.time() - t_start