The current GridSearchTuner (though have not merged yet) is found to be slow, mainly because it searches the whole parameter space, and spends too much time on timing some overly-accurate parameter sets.
Regarding the refactoring, the idea is, we can start the search from the loosest calculation level, say (x, y). We calculate its error E(x, y), if E(x, y) > E_desired, then we move to (x + 1, y) and (x, y+1). We do this repeatedly, until we reach E(x + i, y + j) <= E_desired. By this we can find a boundary, and we only timing the parameters on this boundary, this shall save a lot of calculation time.
This algorithm requires the calculation time increases as the calculation level (x, y) increases. lr_wavelength, mesh_spacing and interpolation_nodes all look like this case. However, whether this algorithm is correct, and details about the implementation are still waiting to be discussed.
The current
GridSearchTuner(though have not merged yet) is found to be slow, mainly because it searches the whole parameter space, and spends too much time on timing some overly-accurate parameter sets.Regarding the refactoring, the idea is, we can start the search from the loosest calculation level, say
(x, y). We calculate its errorE(x, y), ifE(x, y) > E_desired, then we move to(x + 1, y)and(x, y+1). We do this repeatedly, until we reachE(x + i, y + j) <= E_desired. By this we can find a boundary, and we only timing the parameters on this boundary, this shall save a lot of calculation time.This algorithm requires the calculation time increases as the calculation level
(x, y)increases.lr_wavelength,mesh_spacingandinterpolation_nodesall look like this case. However, whether this algorithm is correct, and details about the implementation are still waiting to be discussed.