Frank McQuillan created MADLIB-1445:
---------------------------------------

             Summary: DL:  Hyperband phase 1 - print run schedule
                 Key: MADLIB-1445
                 URL: https://issues.apache.org/jira/browse/MADLIB-1445
             Project: Apache MADlib
          Issue Type: New Feature
          Components: Deep Learning
            Reporter: Frank McQuillan
             Fix For: v1.18.0


Python code to do some version of this is in 
https://github.com/apache/madlib-site/blob/asf-site/community-artifacts/Deep-learning/automl/hyperband-diag-cifar10-v1.ipynb
 in `Section 6.  Print run schedule` so you can use that as a starting point

**Story***

Helper function to print hyperband schedule.
```
SELECT hyperband_schedule (schedule_table, 
                                 R,
                                                   eta,
                                                   skip_last)


schedule_table
VARCHAR. Name of output table for all hyperband rounds.

R
INTEGER. Maximum number of resources (iterations) that can be allocated to a 
single configuration.
* error check >= eta

eta (optional)
INTEGER, default 3. Controls the proportion of configurations discarded in each 
round of successive halving.
For example, for eta=3 will keep the best 1/3 the configurations for the next 
round.
* error check > 1

skip_last (optional)
INTEGER, default 0. The number of last rounds to skip. For example, for 
skip_last=1 will skip the 
last round (i.e., last entry in each bracket), which is standard randomized 
search and can 
be expensive when run for the total R iterations. 
* error check >= 0 and < s_max+1
```

Output 

The Hyperband schedule output has the following columns:
```
s                               INTEGER. Bracket number
i                               INTEGER. Round (depth) in bracket
n_i                             INTEGER. Number of configurations in this round
r_i                             INTEGER. Resources (iterations) in this round
```

**Acceptance**

1) For `R=81, eta=3` check that it prints out the same schedule as in the paper 
https://arxiv.org/pdf/1603.06560.pdf on page 9.
2) Set `skip_last =1` and check last row (rounds) in each bracket is dropped
3) Set `skip_last =2` and check last rows (rounds) in each bracket is dropped
4) Try multiple other values to see if produces the correct schedule
5) Try out of range values for R and eta and show it gives an error message



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to