Just wondering what the right strategy is for warm starts. What is the correct behavior for calling fit! on a machine twice? Here, I assume that the model has an $N$ parameter controlling the number of optimization steps:
model = Regressor(N=N)
mach = machine(model, X, y)
fit!(mach)
fit!(mach) # what happens here?
- Warm start; runs for another $N$ steps from where it left off.
- Warm start; runs for $0$ steps from where it left off. In other words, the user would need to increase $N$ if they want to replicate the behavior of (1)
fit!(mach)
mach.model.N += N
fit!(mach)
- Cold start; resets the search state and runs for $N$ steps. Perhaps you need to use an
update! function for explicit warm starts (in which case 1 and 2 would require using update! instead)
Right now, SymbolicRegression.jl is doing 2. But I'm not sure about this. Pinging @ablaom for tips.
Just wondering what the right strategy is for warm starts. What is the correct behavior for calling$N$ parameter controlling the number of optimization steps:
fit!on a machine twice? Here, I assume that the model has anupdate!function for explicit warm starts (in which case 1 and 2 would require usingupdate!instead)Right now, SymbolicRegression.jl is doing 2. But I'm not sure about this. Pinging @ablaom for tips.