EvolutionTuner.rst 1.28 KB
Newer Older
liuzhe-lz's avatar
liuzhe-lz committed
1
2
Naive Evolution Tuner
=====================
3
4

Naive Evolution comes from `Large-Scale Evolution of Image Classifiers <https://arxiv.org/pdf/1703.01041.pdf>`__. It randomly initializes a population based on the search space. For each generation, it chooses better ones and does some mutation (e.g., changes a hyperparameter, adds/removes one layer, etc.) on them to get the next generation. Naive Evolution requires many trials to works but it's very simple and it's easily expanded with new features.
ChrisZRen's avatar
ChrisZRen committed
5

6
7
Usage
-----
ChrisZRen's avatar
ChrisZRen committed
8
9
10
11
12

classArgs Requirements
^^^^^^^^^^^^^^^^^^^^^^

* 
liuzhe-lz's avatar
liuzhe-lz committed
13
  **optimize_mode** (*maximize or minimize, optional, default = maximize*) - If 'maximize', the tuner will try to maximize metrics. If 'minimize', the tuner will try to minimize metrics.
ChrisZRen's avatar
ChrisZRen committed
14
15

* 
liuzhe-lz's avatar
liuzhe-lz committed
16
  **population_size** (*int value (should > 0), optional, default = 20*) - the initial size of the population (trial num) in the evolution tuner. It's suggested that ``population_size`` be much larger than ``concurrency`` so users can get the most out of the algorithm (and at least ``concurrency``, or the tuner will fail on its first generation of parameters).
ChrisZRen's avatar
ChrisZRen committed
17
18
19
20
21
22
23
24

Example Configuration
^^^^^^^^^^^^^^^^^^^^^

.. code-block:: yaml

   # config.yml
   tuner:
25
     name: Evolution
ChrisZRen's avatar
ChrisZRen committed
26
27
28
29
     classArgs:
       optimize_mode: maximize
       population_size: 100