You are given several groups of hyperparameter choices for an ML experiment. Each group contains one hyperparameter name and a list of candidate values.
Return all possible configurations (the Cartesian product across groups), where each configuration assigns exactly one value to each hyperparameter.
k
hyperparameter groups, e.g.
[("lr", [0.1, 0.01]), ("batch", [16, 32, 64]), ("optimizer", ["sgd", "adam"])]