Open Jacob-Stevens-Haas opened 1 month ago
The challenge in (2) is that group
(e.g. "lorenz"
) determines both:
rhsfunc
, nonnegative
, x0_center
, and len(input_features)
.coeff_true
, input_features
So these are perhaps all truly data parameters that need to be passed to odes.run as part of data
When gridsearching SINDy parameters, the same data is generated for each trial. This costs unneccessary time. Now that mitosis 0.5 can support multi-step experiments, let's pull out data generation as its own experiment step.
Gridsearch will wrap the two steps, dispatching parameters to either data generation or fit eval.
The refactoring path looks like 1) make data generation fit the mitosis API 2) Pull data generation out of experiments, and have gridsearch call both in series 3) change
_ndindex_skinny
into to iterators: sim params and others 4) change the looping to a nested loop 5) Alternatively to 3 and 4: Cache data generation in a memoized helper function.Optionally, add a data loading step