<p>The simplest parameter-free way to do black box optimisation is random search, and it will explore high dimensional spaces faster than a grid search. There are papers on this but tl;dr with random search you get different values on every dimension each time, while with grid search you don't.</p>

<p><a href="https://dash.harvard.edu/bitstream/handle/1/27769882/BayesOptLoop.pdf?sequence=1" rel="noreferrer">Bayesian optimisation</a> has good theoretical guarantees (despite the approximations), and implementations like Spearmint can wrap any script you have; there are hyperparameters but users don't see them in practice. Hyperband got a lot of attention by showing faster convergence than Naive Bayesian optimisation. It was able to do this by running different networks for different numbers of iterations, and Bayesian optimisation doesn't support that naively. While it is possible to do better with a Bayesian optimisation algorithm that can take this into account, such as <a href="https://arxiv.org/abs/1605.07079" rel="noreferrer">FABOLAS</a>, in practice hyperband is so simple you're probably better using it and watching it to tune the search space at intervals.</p>
Hyperparameter optimization for Pytorch model
<p>What is the best way to perform hyperparameter optimization for a Pytorch model? Implement e.g. Random Search myself? Use Skicit Learn? Or is there anything else I am not aware of?</p>