Commit 2562c0a
committed
fix: functional-closure passthrough works for per-candidate optimizers
DE/GA evaluate one candidate at a time by calling closure() directly as a
zero-argument function. The vmap passthrough previously set _current_closure
to the functional closure (which requires a flat_params argument), so DE
crashed with 'missing 1 required positional argument' under
set_functional_closure. Now set_functional_closure also stores a zero-arg
plain equivalent (loss_fn(model), evaluating the model's current weights),
and step() installs that as the passthrough. Population-synchronous
optimizers (PSO/GWO/WOA/CMA-ES) still take the batched vmap path inside
_evaluate_fitness; per-candidate optimizers (DE/GA) now run correctly on the
sequential path. All 5 algorithms verified with the functional closure.
gpu_nn: construct optimizers by signature introspection (swarm_size vs
population_size) and wrap each cell in try/except so one failure can't kill
the sweep or lose the report.1 parent a0b81ce commit 2562c0a
2 files changed
Lines changed: 42 additions & 17 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
181 | 181 | | |
182 | 182 | | |
183 | 183 | | |
| 184 | + | |
184 | 185 | | |
185 | 186 | | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
186 | 196 | | |
187 | 197 | | |
188 | 198 | | |
| |||
227 | 237 | | |
228 | 238 | | |
229 | 239 | | |
230 | | - | |
231 | | - | |
232 | | - | |
233 | | - | |
234 | | - | |
235 | | - | |
236 | | - | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
237 | 247 | | |
238 | | - | |
| 248 | + | |
239 | 249 | | |
240 | 250 | | |
241 | 251 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
70 | 70 | | |
71 | 71 | | |
72 | 72 | | |
73 | | - | |
74 | | - | |
75 | | - | |
76 | | - | |
77 | | - | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
78 | 88 | | |
79 | 89 | | |
80 | 90 | | |
| |||
130 | 140 | | |
131 | 141 | | |
132 | 142 | | |
133 | | - | |
134 | | - | |
135 | | - | |
136 | | - | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
137 | 152 | | |
138 | 153 | | |
139 | 154 | | |
| |||
0 commit comments