Vowpal Wabbit
Public Member Functions | Public Attributes | List of all members
Search::BaseTask Class Reference

#include <search.h>

Public Member Functions

 BaseTask (search *_sch, multi_ex &_ec)
 
BaseTaskforeach_action (void(*f)(search &, size_t, float, action, bool, float))
 
BaseTaskpost_prediction (void(*f)(search &, size_t, action, float))
 
BaseTaskmaybe_override_prediction (bool(*f)(search &, size_t, action &, float &))
 
BaseTaskwith_output_string (void(*f)(search &, std::stringstream &))
 
BaseTaskfinal_run ()
 
void Run ()
 

Public Attributes

searchsch
 
multi_exec
 
bool _final_run
 
void(* _foreach_action )(search &, size_t, float, action, bool, float)
 
void(* _post_prediction )(search &, size_t, action, float)
 
bool(* _maybe_override_prediction )(search &, size_t, action &, float &)
 
void(* _with_output_string )(search &, std::stringstream &)
 

Detailed Description

Definition at line 31 of file search.h.

Constructor & Destructor Documentation

◆ BaseTask()

Search::BaseTask::BaseTask ( search _sch,
multi_ex _ec 
)
inline

Definition at line 34 of file search.h.

References _final_run, _foreach_action, _maybe_override_prediction, _post_prediction, and _with_output_string.

Referenced by Search::search::base_task().

34  : sch(_sch), ec(_ec)
35  {
36  _foreach_action = nullptr;
37  _post_prediction = nullptr;
39  _with_output_string = nullptr;
40  _final_run = false;
41  }
search * sch
Definition: search.h:71
bool _final_run
Definition: search.h:73
void(* _foreach_action)(search &, size_t, float, action, bool, float)
Definition: search.h:74
multi_ex & ec
Definition: search.h:72
void(* _post_prediction)(search &, size_t, action, float)
Definition: search.h:75
void(* _with_output_string)(search &, std::stringstream &)
Definition: search.h:77
bool(* _maybe_override_prediction)(search &, size_t, action &, float &)
Definition: search.h:76

Member Function Documentation

◆ final_run()

BaseTask& Search::BaseTask::final_run ( )
inline

Definition at line 62 of file search.h.

References _final_run, and Run().

63  {
64  _final_run = true;
65  return *this;
66  }
bool _final_run
Definition: search.h:73

◆ foreach_action()

BaseTask& Search::BaseTask::foreach_action ( void(*)(search &, size_t, float, action, bool, float)  f)
inline

Definition at line 42 of file search.h.

References _foreach_action, and f.

Referenced by DebugMT::run(), and SelectiveBranchingMT::run().

43  {
45  return *this;
46  }
void(* _foreach_action)(search &, size_t, float, action, bool, float)
Definition: search.h:74
float f
Definition: cache.cc:40

◆ maybe_override_prediction()

BaseTask& Search::BaseTask::maybe_override_prediction ( bool(*)(search &, size_t, action &, float &)  f)
inline

Definition at line 52 of file search.h.

References _maybe_override_prediction, and f.

53  {
55  return *this;
56  }
bool(* _maybe_override_prediction)(search &, size_t, action &, float &)
Definition: search.h:76
float f
Definition: cache.cc:40

◆ post_prediction()

BaseTask& Search::BaseTask::post_prediction ( void(*)(search &, size_t, action, float)  f)
inline

Definition at line 47 of file search.h.

References _post_prediction, and f.

48  {
50  return *this;
51  }
void(* _post_prediction)(search &, size_t, action, float)
Definition: search.h:75
float f
Definition: cache.cc:40

◆ Run()

void Search::BaseTask::Run ( )

Definition at line 2063 of file search.cc.

References Search::search_private::learn_loss, Search::search_private::meta_t, Search::search_private::metaoverride, Search::search_private::pred_string, Search::search_task::run, Search::search_private::should_produce_string, Search::search_private::t, Search::search_private::task, Search::search_private::test_loss, and Search::search_private::train_loss.

Referenced by final_run(), DebugMT::run(), and SelectiveBranchingMT::run().

2064 {
2065  search_private& priv = *sch->priv;
2066  // make sure output is correct
2067  bool old_should_produce_string = priv.should_produce_string;
2069  priv.should_produce_string = false;
2070  // if this isn't a final run, it shouldn't count for loss
2071  float old_test_loss = priv.test_loss;
2072  // float old_learn_loss = priv.learn_loss;
2073  priv.learn_loss *= 0.5;
2074  float old_train_loss = priv.train_loss;
2075 
2076  if (priv.should_produce_string)
2077  priv.pred_string->str("");
2078 
2079  priv.t = 0;
2080  priv.metaoverride = this;
2081  priv.task->run(*sch, ec);
2082  priv.metaoverride = nullptr;
2083  priv.meta_t += priv.t;
2084 
2085  // restore
2086  if (_with_output_string && old_should_produce_string)
2087  _with_output_string(*sch, *priv.pred_string);
2088 
2089  priv.should_produce_string = old_should_produce_string;
2090  if (!_final_run)
2091  {
2092  priv.test_loss = old_test_loss;
2093  // priv.learn_loss = old_learn_loss;
2094  priv.train_loss = old_train_loss;
2095  }
2096 }
search * sch
Definition: search.h:71
search_private * priv
Definition: search.h:216
bool _final_run
Definition: search.h:73
multi_ex & ec
Definition: search.h:72
void(* _with_output_string)(search &, std::stringstream &)
Definition: search.h:77

◆ with_output_string()

BaseTask& Search::BaseTask::with_output_string ( void(*)(search &, std::stringstream &)  f)
inline

Definition at line 57 of file search.h.

References _with_output_string, and f.

58  {
60  return *this;
61  }
void(* _with_output_string)(search &, std::stringstream &)
Definition: search.h:77
float f
Definition: cache.cc:40

Member Data Documentation

◆ _final_run

bool Search::BaseTask::_final_run

Definition at line 73 of file search.h.

Referenced by BaseTask(), and final_run().

◆ _foreach_action

void(* Search::BaseTask::_foreach_action) (search &, size_t, float, action, bool, float)

◆ _maybe_override_prediction

bool(* Search::BaseTask::_maybe_override_prediction) (search &, size_t, action &, float &)

Definition at line 76 of file search.h.

Referenced by BaseTask(), maybe_override_prediction(), and Search::search_predict().

◆ _post_prediction

void(* Search::BaseTask::_post_prediction) (search &, size_t, action, float)

Definition at line 75 of file search.h.

Referenced by BaseTask(), post_prediction(), and Search::search_predict().

◆ _with_output_string

void(* Search::BaseTask::_with_output_string) (search &, std::stringstream &)

Definition at line 77 of file search.h.

Referenced by BaseTask(), and with_output_string().

◆ ec

multi_ex& Search::BaseTask::ec

Definition at line 72 of file search.h.

Referenced by Search::search::get_metatask_data().

◆ sch

search* Search::BaseTask::sch

The documentation for this class was generated from the following files: