In deep learning, performance is strongly affected by the choice of architecture
 and hyperparameters. While there has been extensive work on automatic hyperpa-
 rameter optimization for simple spaces, complex spaces such as the space of deep
 architectures remain largely unexplored. As a result, the choice of architecture is
 done manually by the human expert through a slow trial and error process guided
 mainly by intuition. In this paper we describe a framework for automatically
 designing and training deep models. We propose an extensible and modular lan-
 guage that allows the human expert to compactly represent complex search spaces
 over architectures and their hyperparameters. The resulting search spaces are tree-
 structured and therefore easy to traverse. Models can be automatically compiled to
 computational graphs once values for all hyperparameters have been chosen. We
 can leverage the structure of the search space to introduce different model search
 algorithms, such as random search, Monte Carlo tree search (MCTS), and sequen-
 tial model-based optimization (SMBO). We present experiments comparing the
 different algorithms on CIFAR-10 and show that MCTS and SMBO outperform
 random search. We also present experiments on MNIST, showing that the same
 search space achieves near state-of-the-art performance with a few samples. These
 experiments show that our framework can be used effectively for model discov-
 ery, as it is possible to describe expressive search spaces and discover competitive
 models without much effort from the human expert. Code for our framework and
 experiments has been made publicly available
We describe a modular and composable language for describing expressive search spaces over architectures and simple model search algorithms applied to these search spaces. 