Post-NAS MLP topology microbenchmark - #88
Conversation
Evolve feed-forward layer graphs trained with NumPy SGD on a synthetic nonlinear classification task — a lightweight wedge for issue skydiscover-ai#2. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Clean, minimal post-NAS MLP microbenchmark - the accuracy-plus-complexity objective and the real validator are nicely done. I found one integrity issue worth closing before merge, plus one small note. Main issue - Suggested fix: capture only the returned architecture (deep-copy it), and call Smaller, non-blocking:
The scoring-isolation gap is the one real blocker for me; otherwise this is tidy. Glad to help once it is addressed. |
Capture _validate/_train_eval in a closure before any candidate exec, deepcopy the returned architecture, and bind trainer helpers at definition time so a candidate cannot rebind evaluator._train_eval to fake perfect metrics. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Addressed the scoring-isolation issue from the review:
Regression: |
|
@ShauryaVM Thanks, the module-global rebind is genuinely dead now: setting The isolation is not real yet, though. The captured trainer lives in a writable CPython closure cell, and One more thing: the regression test only exercises the module-global rebind, so it passes while the closure variant still works. Closure capture is not isolation when cells are mutable and reachable; this needs a separate process. |
Issue #2 asked about Post-NAS / architecture adaptation as a discovery domain. This is a small, dependency-light wedge: the evolved object is an MLP layer graph, not a one-shot algorithm.
What lands
How I tested
Related to #2
Made with Cursor