PLearn 0.1
Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Private Types | Private Member Functions
PLearn::HyperOptimize Class Reference

Carry out an hyper-parameter optimization according to an Oracle. More...

#include <HyperOptimize.h>

Inheritance diagram for PLearn::HyperOptimize:
Inheritance graph
[legend]
Collaboration diagram for PLearn::HyperOptimize:
Collaboration graph
[legend]

List of all members.

Public Member Functions

virtual string classname () const
virtual OptionListgetOptionList () const
virtual OptionMapgetOptionMap () const
virtual RemoteMethodMapgetRemoteMethodMap () const
virtual HyperOptimizedeepCopy (CopiesMap &copies) const
 HyperOptimize ()
virtual void setExperimentDirectory (const PPath &the_expdir)
 Sets the expdir and calls createResultsMat.
virtual TVec< string > getResultNames () const
 Returns the names of the results returned by the optimize() method.
virtual void forget ()
 Resets the command's internal state as if freshly constructed (default does nothing)
virtual Vec optimize ()
 Executes the command, returning the resulting costvec of its optimization (or an empty vec if it didn't do any testng).
virtual void build ()
 Post-constructor.
virtual void makeDeepCopyFromShallowCopy (CopiesMap &copies)
 Transforms a shallow copy into a deep copy.

Static Public Member Functions

static string _classname_ ()
static OptionList_getOptionList_ ()
static RemoteMethodMap_getRemoteMethodMap_ ()
static Object_new_instance_for_typemap_ ()
static bool _isa_ (const Object *o)
static void _static_initialize_ ()
static const PPathdeclaringFile ()

Public Attributes

int which_cost_pos
string which_cost
int min_n_trials
PP< OptionsOracleoracle
bool provide_tester_expdir
TVec< PP< HyperCommand > > sub_strategy
 A possible sub-strategy to optimize other hyper parameters.
bool rerun_after_sub
bool provide_sub_expdir
bool save_best_learner
int auto_save
int auto_save_test
int auto_save_diff_time
PP< Splittersplitter

Static Public Attributes

static StaticInitializer _static_initializer_

Protected Member Functions

void getResultsMat ()
void reportResult (int trialnum, const Vec &results)
Vec runTest (int trialnum)

Static Protected Member Functions

static void declareOptions (OptionList &ol)
 Declares this class' options.

Protected Attributes

VMat resultsmat
 Store the results computed for each trial.
real best_objective
Vec best_results
PP< PLearnerbest_learner
int trialnum
TVec< string > option_vals
PP< PTimerauto_save_timer

Private Types

typedef HyperCommand inherited

Private Member Functions

void build_ ()
 This does the actual building.

Detailed Description

Carry out an hyper-parameter optimization according to an Oracle.

HyperOptimize is part of a sequence of HyperCommands (specified within an HyperLearner) to optimize a validation cost over settings of hyper-parameters provided by an Oracle. [NOTE: The "underlying learner" is the PLearner object (specified within the enclosing HyperLearner) whose hyper-parameters we are trying to optimize.]

The sequence of steps followed by HyperOptimize is as follows:

Optionally, instead of a plain Train/Test in Step 3, a SUB-STRATEGY may be invoked. This can be viewed as a "sub-routine" for hyperoptimization and can be used to implement a form of conditioning: given the current setting for hyper-parameters X,Y,Z, find the best setting of hyper-parameters T,U,V. The most common example is for doing early-stopping when training a neural network: a first-level HyperOptimize command can use an ExplicitListOracle to jointly optimize over weight-decays and the number of hidden units. A sub-strategy can then be used with an EarlyStoppingOracle to find the optimal number of training stages (epochs) for each combination of weight-decay/hidden units.

Note that after optimization, the matrix of all trials is available through the option 'resultsmat' (which is declared as nosave). This is available even if no expdir has been declared.

Definition at line 106 of file HyperOptimize.h.


Member Typedef Documentation

Reimplemented from PLearn::HyperCommand.

Definition at line 108 of file HyperOptimize.h.


Constructor & Destructor Documentation

PLearn::HyperOptimize::HyperOptimize ( )

Definition at line 110 of file HyperOptimize.cc.


Member Function Documentation

string PLearn::HyperOptimize::_classname_ ( ) [static]

Reimplemented from PLearn::HyperCommand.

Definition at line 107 of file HyperOptimize.cc.

OptionList & PLearn::HyperOptimize::_getOptionList_ ( ) [static]

Reimplemented from PLearn::HyperCommand.

Definition at line 107 of file HyperOptimize.cc.

RemoteMethodMap & PLearn::HyperOptimize::_getRemoteMethodMap_ ( ) [static]

Reimplemented from PLearn::HyperCommand.

Definition at line 107 of file HyperOptimize.cc.

bool PLearn::HyperOptimize::_isa_ ( const Object o) [static]

Reimplemented from PLearn::HyperCommand.

Definition at line 107 of file HyperOptimize.cc.

Object * PLearn::HyperOptimize::_new_instance_for_typemap_ ( ) [static]

Reimplemented from PLearn::Object.

Definition at line 107 of file HyperOptimize.cc.

StaticInitializer HyperOptimize::_static_initializer_ & PLearn::HyperOptimize::_static_initialize_ ( ) [static]

Reimplemented from PLearn::HyperCommand.

Definition at line 107 of file HyperOptimize.cc.

void PLearn::HyperOptimize::build ( ) [virtual]

Post-constructor.

The normal implementation should call simply inherited::build(), then this class's build_(). This method should be callable again at later times, after modifying some option fields to change the "architecture" of the object.

Reimplemented from PLearn::HyperCommand.

Definition at line 234 of file HyperOptimize.cc.

References PLearn::HyperCommand::build(), and build_().

Here is the call graph for this function:

void PLearn::HyperOptimize::build_ ( ) [private]

This does the actual building.

Reimplemented from PLearn::HyperCommand.

Definition at line 226 of file HyperOptimize.cc.

References PLearn::Profiler::pl_profile_activate().

Referenced by build().

Here is the call graph for this function:

Here is the caller graph for this function:

string PLearn::HyperOptimize::classname ( ) const [virtual]

Reimplemented from PLearn::Object.

Definition at line 107 of file HyperOptimize.cc.

void PLearn::HyperOptimize::declareOptions ( OptionList ol) [static, protected]

Declares this class' options.

Reimplemented from PLearn::HyperCommand.

Definition at line 129 of file HyperOptimize.cc.

References auto_save, auto_save_diff_time, auto_save_test, best_learner, best_objective, best_results, PLearn::OptionBase::buildoption, PLearn::declareOption(), PLearn::HyperCommand::declareOptions(), PLearn::OptionBase::learntoption, min_n_trials, PLearn::OptionBase::nosave, option_vals, oracle, provide_sub_expdir, provide_tester_expdir, rerun_after_sub, resultsmat, save_best_learner, splitter, sub_strategy, trialnum, and which_cost.

{
    declareOption(
        ol, "which_cost", &HyperOptimize::which_cost, OptionBase::buildoption,
        "An index or a name in the tester's statnames to be used as the"
        " objective cost to minimize. If the index <0, we will take the last"
        " learner as the best.");

    declareOption(
        ol, "min_n_trials", &HyperOptimize::min_n_trials, OptionBase::buildoption,
        "Minimum nb of trials before saving best model");

    declareOption(
        ol, "oracle", &HyperOptimize::oracle, OptionBase::buildoption,
        "Oracle to interrogate to get hyper-parameter values to try.");

    declareOption(
        ol, "provide_tester_expdir", &HyperOptimize::provide_tester_expdir, OptionBase::buildoption,
        "Should the tester be provided with an expdir for each option combination to test");

    declareOption(
        ol, "sub_strategy", &HyperOptimize::sub_strategy, OptionBase::buildoption,
        "Optional sub-strategy to optimize other hyper-params (for each combination given by the oracle)");

    declareOption(
        ol, "rerun_after_sub", &HyperOptimize::rerun_after_sub, OptionBase::buildoption,
        "If this is true, a new evaluation will be performed after executing the sub-strategy, \n"
        "using this HyperOptimizer's splitter and which_cost. \n"
        "This is useful if the sub_strategy optimizes a different cost, or uses different splitting.\n");

    declareOption(
        ol, "provide_sub_expdir", &HyperOptimize::provide_sub_expdir, OptionBase::buildoption,
        "Should sub_strategy commands be provided an expdir");

    declareOption(
        ol, "save_best_learner", &HyperOptimize::save_best_learner,
        OptionBase::buildoption,
        "If true, the best learner at any step will be saved in the\n"
        "strategy expdir, as 'current_best_learner.psave'.");

    declareOption(
        ol, "splitter", &HyperOptimize::splitter, OptionBase::buildoption,
        "If not specified, we'll use default splitter specified in the hyper-learner's tester option");

    declareOption(
        ol, "auto_save", &HyperOptimize::auto_save, OptionBase::buildoption,
        "Save the hlearner and reload it if necessary.\n"
        "0 mean never, 1 mean always and >0 save iff trialnum%auto_save == 0.\n"
        "In the last case, it save after the last trial.\n"
        "See auto_save_diff_time as both condition must be true to save.\n");

    declareOption(
        ol, "auto_save_diff_time", &HyperOptimize::auto_save_diff_time,
        OptionBase::buildoption,
        "HyperOptimize::auto_save_diff_time is the mininum amount of time\n"
        "(in seconds) before the first save point, then between two\n"
        "consecutive save points.");

    declareOption(
        ol, "auto_save_test", &HyperOptimize::auto_save_test, OptionBase::buildoption,
        "exit after each auto_save. This is usefull to test auto_save.\n"
        "0 mean never, 1 mean always and >0 save iff trialnum%auto_save == 0");

    declareOption(
        ol, "resultsmat", &HyperOptimize::resultsmat,
        OptionBase::learntoption | OptionBase::nosave,
        "Gives access to the results of all trials during the last training.\n"
        "The last row lists the best results found and kept.  Note that this\n"
        "is declared 'nosave' and is intended for programmatic access by other\n"
        "functions through the getOption() mechanism. If an expdir is declared\n"
        "this matrix is available under the name 'results.pmat' in the expdir.");
    
    declareOption(ol, "best_objective", &HyperOptimize::best_objective,
                  OptionBase::learntoption,
                  "The best objective seen up to date.");

    declareOption(ol, "best_results", &HyperOptimize::best_results,
                  OptionBase::learntoption,
                  "The best result seen up to date." );

    declareOption(ol, "best_learner", &HyperOptimize::best_learner,
                  OptionBase::learntoption,
                  "A copy of the learner to the best learner seen up to date." );

    declareOption(ol, "trialnum", &HyperOptimize::trialnum,
                  OptionBase::learntoption, "The number of trial done." );

    declareOption(ol, "option_vals", &HyperOptimize::option_vals,
                  OptionBase::learntoption,"The option value to try." );

    // Now call the parent class' declareOptions
    inherited::declareOptions(ol);
}

Here is the call graph for this function:

static const PPath& PLearn::HyperOptimize::declaringFile ( ) [inline, static]

Reimplemented from PLearn::HyperCommand.

Definition at line 122 of file HyperOptimize.h.

:
HyperOptimize * PLearn::HyperOptimize::deepCopy ( CopiesMap copies) const [virtual]

Reimplemented from PLearn::HyperCommand.

Definition at line 107 of file HyperOptimize.cc.

void PLearn::HyperOptimize::forget ( ) [virtual]

Resets the command's internal state as if freshly constructed (default does nothing)

Reimplemented from PLearn::HyperCommand.

Definition at line 346 of file HyperOptimize.cc.

References best_learner, best_objective, best_results, i, n, option_vals, PLearn::TVec< T >::resize(), PLearn::TVec< T >::size(), sub_strategy, and trialnum.

{
    trialnum = 0;    
    option_vals.resize(0);
    best_objective = REAL_MAX;
    best_results = Vec();
    best_learner = 0;

    for (int i=0, n=sub_strategy.size() ; i<n ; ++i)
        sub_strategy[i]->forget();
}

Here is the call graph for this function:

OptionList & PLearn::HyperOptimize::getOptionList ( ) const [virtual]

Reimplemented from PLearn::Object.

Definition at line 107 of file HyperOptimize.cc.

OptionMap & PLearn::HyperOptimize::getOptionMap ( ) const [virtual]

Reimplemented from PLearn::Object.

Definition at line 107 of file HyperOptimize.cc.

RemoteMethodMap & PLearn::HyperOptimize::getRemoteMethodMap ( ) const [virtual]

Reimplemented from PLearn::Object.

Definition at line 107 of file HyperOptimize.cc.

TVec< string > PLearn::HyperOptimize::getResultNames ( ) const [virtual]

Returns the names of the results returned by the optimize() method.

Implements PLearn::HyperCommand.

Definition at line 341 of file HyperOptimize.cc.

References PLearn::HyperCommand::hlearner, and PLearn::HyperLearner::tester.

Referenced by getResultsMat(), optimize(), and reportResult().

{
    return hlearner->tester->getStatNames();
}

Here is the caller graph for this function:

void PLearn::HyperOptimize::getResultsMat ( ) [protected]

Definition at line 246 of file HyperOptimize.cc.

References PLearn::HyperCommand::expdir, getResultNames(), PLearn::HyperCommand::hlearner, PLearn::PPath::isEmpty(), PLearn::isfile(), j, PLearn::TVec< T >::length(), PLearn::HyperLearner::option_fields, PLERROR, resultsmat, w, and PLearn::VMat::width().

Referenced by setExperimentDirectory().

{
    TVec<string> cost_fields = getResultNames();
    TVec<string> option_fields = hlearner->option_fields;
    int w = 2 + option_fields.length() + cost_fields.length();

    // If we have an expdir, create a FileVMatrix to save the results.
    // Otherwise, just a MemoryVMatrix to make the results available as a
    // getOption after training.
    if (! expdir.isEmpty())
    {
        string fname = expdir+"results.pmat";
        if(isfile(fname)){
            //we reload the old version if it exist
            resultsmat = new FileVMatrix(fname, true);
            if(resultsmat.width()!=w)
                PLERROR("In HyperOptimize::getResultsMat() - The existing "
                        "results mat(%s) that we should reload don't have the "
                        "width that we need. Did you added some statnames?",
                        fname.c_str());
            return;
        }else
            resultsmat = new FileVMatrix(fname,0,w);
    }
    else
        resultsmat = new MemoryVMatrix(0,w);

    int j=0;
    resultsmat->declareField(j++, "_trial_");
    resultsmat->declareField(j++, "_objective_");
    for(int k=0; k<option_fields.length(); k++)
        resultsmat->declareField(j++, option_fields[k]);
    for(int k=0; k<cost_fields.length(); k++)
        resultsmat->declareField(j++, cost_fields[k]);

    if (! expdir.isEmpty())
        resultsmat->saveFieldInfos();
}

Here is the call graph for this function:

Here is the caller graph for this function:

void PLearn::HyperOptimize::makeDeepCopyFromShallowCopy ( CopiesMap copies) [virtual]
Vec PLearn::HyperOptimize::optimize ( ) [virtual]

Executes the command, returning the resulting costvec of its optimization (or an empty vec if it didn't do any testng).

Implements PLearn::HyperCommand.

Definition at line 358 of file HyperOptimize.cc.

References PLearn::HyperLearner::auto_save(), auto_save, auto_save_diff_time, auto_save_test, auto_save_timer, best_learner, best_objective, best_results, PLearn::endl(), PLearn::HyperCommand::expdir, PLearn::TVec< T >::find(), PLearn::EmbeddedLearner::getLearner(), getResultNames(), PLearn::HyperCommand::hlearner, i, PLearn::is_missing(), PLearn::TVec< T >::isEmpty(), PLearn::PPath::isEmpty(), PLearn::TVec< T >::length(), PLearn::VMat::length(), min_n_trials, MISSING_VALUE, n, option_vals, oracle, PLearn::perr, PLearn::pl_islong(), PLearn::Profiler::pl_profile_end(), PLearn::Profiler::pl_profile_start(), PLERROR, PLWARNING, provide_sub_expdir, reportResult(), rerun_after_sub, resultsmat, runTest(), PLearn::Object::save(), save_best_learner, setExperimentDirectory(), PLearn::HyperLearner::setLearner(), PLearn::HyperLearner::setLearnerOptions(), PLearn::TVec< T >::size(), sub_strategy, PLearn::toint(), PLearn::tostring(), trialnum, PLearn::HyperCommand::verbosity, which_cost, and which_cost_pos.

{
//in the case when auto_save is true. This function can be called even
//if the optimisation is finished. We must not redo it in this case.
    if(trialnum>0&&!option_vals&&resultsmat.length()==trialnum+1){
        hlearner->setLearner(best_learner);
        if (!best_results.isEmpty() && resultsmat->get(resultsmat.length()-1,0)!=-1)
            reportResult(-1,best_results);

        return best_results;
    }
    TVec<string> option_names;
    option_names = oracle->getOptionNames();

    if(trialnum==0){
        if(option_vals.size()==0)
            option_vals = oracle->generateFirstTrial();
        if (option_vals.size() != option_names.size())
            PLERROR("HyperOptimize::optimize: the number (%d) of option values (%s) "
                    "does not match the number (%d) of option names (%s) ",
                    option_vals.size(), tostring(option_vals).c_str(),
                    option_names.size(), tostring(option_names).c_str());
    }
    which_cost_pos= getResultNames().find(which_cost);
    if(which_cost_pos < 0){
        if(!pl_islong(which_cost))
            PLERROR("In HyperOptimize::optimize() -  option 'which_cost' with "
                    "value '%s' is not a number and is not a valid result test name",
                    which_cost.c_str());
        which_cost_pos= toint(which_cost);
    }

    Vec results;
    while(option_vals)
    {
        auto_save_timer->startTimer("auto_save");

        if(verbosity>0) {
            // Print current option-value pairs in slightly comprehensible form
            string kv;
            for (int i=0, n=option_names.size() ; i<n ; ++i) {
                kv += option_names[i] + '=' + option_vals[i];
                if (i < n-1)
                    kv += ", ";
            }
            perr << "In HyperOptimize::optimize() - We optimize with "
                "parameters " << kv << "\n";
        }

        // This will also call build and forget on the learner unless unnecessary
        // because the modified options don't require it.
        hlearner->setLearnerOptions(option_names, option_vals);

        if(sub_strategy)
        {
            Vec best_sub_results;
            for(int commandnum=0; commandnum<sub_strategy.length(); commandnum++)
            {
                sub_strategy[commandnum]->setHyperLearner(hlearner);
                sub_strategy[commandnum]->forget();
                if(!expdir.isEmpty() && provide_sub_expdir)
                    sub_strategy[commandnum]->setExperimentDirectory(
                        expdir / ("Trials"+tostring(trialnum)) / ("Step"+tostring(commandnum))
                        );
                
                best_sub_results = sub_strategy[commandnum]->optimize();
            }
            if(rerun_after_sub)
                results = runTest(trialnum);
            else
                results = best_sub_results;
        }
        else
            results = runTest(trialnum);

        reportResult(trialnum,results);
        real objective = MISSING_VALUE;
        if (which_cost_pos>=0)
            objective = results[which_cost_pos];
        else
        {//The best is always the last
            best_objective = objective;
            best_results = results;
            best_learner = hlearner->getLearner();
        }
        option_vals = oracle->generateNextTrial(option_vals,objective);

        ++trialnum;
        if(!is_missing(objective) &&
           (objective < best_objective || best_results.length()==0) && (trialnum>=min_n_trials || !option_vals))
        {
            best_objective = objective;
            best_results = results;
            CopiesMap copies;
            best_learner = NULL;
            Profiler::pl_profile_start("HyperOptimizer::optimize::deepCopy");
            best_learner = hlearner->getLearner()->deepCopy(copies);
            Profiler::pl_profile_end("HyperOptimizer::optimize::deepCopy");

            if (save_best_learner && !expdir.isEmpty()) {
                PLearn::save(expdir / "current_best_learner.psave",
                             best_learner);
            }
        }

        if(verbosity>1) {
            perr << "In HyperOptimize::optimize() - cost=" << which_cost
                 << " nb of trials="<<trialnum
                 << " Current value=" << objective << " Best value= "
                 << best_objective << endl;
        }

        auto_save_timer->stopTimer("auto_save");
        if (auto_save > 0 &&
                (trialnum % auto_save == 0 || option_vals.isEmpty()))
        {
            int s = int(auto_save_timer->getTimer("auto_save"));
            if(s > auto_save_diff_time || option_vals.isEmpty()) {
                hlearner->auto_save();
                auto_save_timer->resetTimer("auto_save");
                if(auto_save_test>0 && trialnum%auto_save_test==0)
                    PLERROR("In HyperOptimize::optimize() - auto_save_test is true,"
                            " exiting");
            }
        }
    }

    // Detect the case where no trials at all were performed!
    if (trialnum == 0)
        PLWARNING("In HyperOptimize::optimize - No trials at all were completed;\n"
                  "perhaps the oracle settings are wrong?");

    // revert to best_learner if one found.
    hlearner->setLearner(best_learner);

    if (best_results.isEmpty())
        // This could happen for instance if all results are NaN.
        PLWARNING("In HyperOptimize::optimize - Could not find a best result,"
                  " something must be wrong");
    else
        // report best result again, if not empty
        reportResult(-1,best_results);

    return best_results;
}

Here is the call graph for this function:

void PLearn::HyperOptimize::reportResult ( int  trialnum,
const Vec results 
) [protected]

Definition at line 285 of file HyperOptimize.cc.

References PLearn::HyperCommand::expdir, getResultNames(), PLearn::HyperCommand::hlearner, PLearn::is_missing(), j, PLearn::EmbeddedLearner::learner_, PLearn::TVec< T >::length(), PLearn::HyperLearner::option_fields, PLERROR, resultsmat, trialnum, which_cost_pos, and PLearn::VMat::width().

Referenced by optimize().

{
    if(expdir!="")
    {
        TVec<string> cost_fields = getResultNames();
        TVec<string> option_fields = hlearner->option_fields;

        if(results.length() != cost_fields.length())
            PLERROR("In HyperOptimize::reportResult - Length of results vector (%d) "
                    "differs from number of cost fields (%d)",
                    results.length(), cost_fields.length());

        // ex: _trial_ _objective_ nepochs nhidden ...     train_error

        Vec newres(resultsmat.width());
        int j=0;
        newres[j++] = trialnum;
        newres[j++] = which_cost_pos;

        for(int k=0; k<option_fields.length(); k++)
        {
            string optstr = hlearner->learner_->getOption(option_fields[k]);
            real optreal = toreal(optstr);
            if(is_missing(optreal)) // it's not directly a real: get a mapping for it
                optreal = resultsmat->addStringMapping(k, optstr);
            newres[j++] = optreal;
        }

        for(int k=0; k<cost_fields.length(); k++)
            newres[j++] = results[k];

        resultsmat->appendRow(newres);
        resultsmat->flush();
    }
}

Here is the call graph for this function:

Here is the caller graph for this function:

Vec PLearn::HyperOptimize::runTest ( int  trialnum) [protected]

restore default splitter

Definition at line 321 of file HyperOptimize.cc.

References PLearn::HyperCommand::expdir, PLearn::HyperCommand::hlearner, provide_tester_expdir, splitter, PLearn::HyperLearner::tester, and PLearn::tostring().

Referenced by optimize().

{
    PP<PTester> tester = hlearner->tester;

    string testerexpdir = "";
    if(expdir!="" && provide_tester_expdir)
        testerexpdir = expdir / ("Trials"+tostring(trialnum)) / "";
    tester->setExperimentDirectory(testerexpdir);

    PP<Splitter> default_splitter = tester->splitter;
    if(splitter)  // set our own splitter
        tester->splitter = splitter;

    Vec results = tester->perform(false);

    tester->splitter = default_splitter;
    return results;
}

Here is the call graph for this function:

Here is the caller graph for this function:

void PLearn::HyperOptimize::setExperimentDirectory ( const PPath the_expdir) [virtual]

Sets the expdir and calls createResultsMat.

Reimplemented from PLearn::HyperCommand.

Definition at line 240 of file HyperOptimize.cc.

References getResultsMat(), and PLearn::HyperCommand::setExperimentDirectory().

Referenced by optimize().

Here is the call graph for this function:

Here is the caller graph for this function:


Member Data Documentation

Reimplemented from PLearn::HyperCommand.

Definition at line 122 of file HyperOptimize.h.

Definition at line 137 of file HyperOptimize.h.

Referenced by declareOptions(), and optimize().

Definition at line 139 of file HyperOptimize.h.

Referenced by declareOptions(), and optimize().

Definition at line 138 of file HyperOptimize.h.

Referenced by declareOptions(), and optimize().

Definition at line 118 of file HyperOptimize.h.

Referenced by makeDeepCopyFromShallowCopy(), and optimize().

Definition at line 115 of file HyperOptimize.h.

Referenced by declareOptions(), forget(), makeDeepCopyFromShallowCopy(), and optimize().

Definition at line 113 of file HyperOptimize.h.

Referenced by declareOptions(), forget(), and optimize().

Definition at line 114 of file HyperOptimize.h.

Referenced by declareOptions(), forget(), makeDeepCopyFromShallowCopy(), and optimize().

Definition at line 130 of file HyperOptimize.h.

Referenced by declareOptions(), and optimize().

Definition at line 117 of file HyperOptimize.h.

Referenced by declareOptions(), forget(), makeDeepCopyFromShallowCopy(), and optimize().

Definition at line 131 of file HyperOptimize.h.

Referenced by declareOptions(), makeDeepCopyFromShallowCopy(), and optimize().

Definition at line 135 of file HyperOptimize.h.

Referenced by declareOptions(), and optimize().

Definition at line 132 of file HyperOptimize.h.

Referenced by declareOptions(), and runTest().

Definition at line 134 of file HyperOptimize.h.

Referenced by declareOptions(), and optimize().

Store the results computed for each trial.

Definition at line 112 of file HyperOptimize.h.

Referenced by declareOptions(), getResultsMat(), makeDeepCopyFromShallowCopy(), optimize(), and reportResult().

Definition at line 136 of file HyperOptimize.h.

Referenced by declareOptions(), and optimize().

Definition at line 140 of file HyperOptimize.h.

Referenced by declareOptions(), makeDeepCopyFromShallowCopy(), and runTest().

A possible sub-strategy to optimize other hyper parameters.

Definition at line 133 of file HyperOptimize.h.

Referenced by declareOptions(), forget(), makeDeepCopyFromShallowCopy(), and optimize().

Definition at line 116 of file HyperOptimize.h.

Referenced by declareOptions(), forget(), optimize(), and reportResult().

Definition at line 129 of file HyperOptimize.h.

Referenced by declareOptions(), and optimize().

Definition at line 122 of file HyperOptimize.h.

Referenced by optimize(), and reportResult().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines