14 switch (prediction_type)
25 return "<unsupported>";
57 if ((ec.
tag).size() >= 6 && (ec.
tag)[4] ==
'_')
58 final_regressor_name = std::string(ec.
tag.
begin() + 5, (ec.
tag).size() - 5);
61 all.
trace_message <<
"saving regressor to " << final_regressor_name << std::endl;
71 bool is_header =
false;
86 return (ec->
tag.
size() >= 4) && (0 == strncmp((
const char*)ec->
tag.
begin(),
"save", 4));
109 template <
class T,
void (*process_impl)(T&, vw&)>
112 process_impl(ec, _all);
126 template <
class T,
void (*process_impl)(T&, vw&)>
130 for (
auto it = _all.rbegin(); it != _all.rend(); ++it) process_impl(ec, **it);
139 template <
typename context_type>
148 _context.template process<example, learn_ex>(*ec);
150 _context.template process<example, end_pass>(*ec);
152 _context.template process<example, save>(*ec);
154 _context.template process<example, learn_ex>(*ec);
161 template <
typename context_type>
167 auto& master = _context.get_master();
168 const bool is_test_ec = master.p->lp.test_label(&ec->
l);
172 ec_seq.push_back(ec);
184 return complete_multi_ex(ec);
186 _context.template process<example, end_pass>(*ec);
188 _context.template process<example, save>(*ec);
190 return complete_multi_ex(ec);
201 _context.template process<multi_ex, learn_multi_ex>(ec_seq);
207 if (try_complete_multi_ex(ec))
209 _context.template process<multi_ex, learn_multi_ex>(ec_seq);
237 example*
pop() {
return _index < _examples.size() ? _examples[_index++] :
nullptr; }
244 template <
typename queue_type,
typename handler_type>
249 while ((ec = examples.pop()) !=
nullptr) handler.on_example(ec);
252 template <
typename context_type>
255 if (context.get_master().l->is_multiline)
258 handler_type handler(context);
264 handler_type handler(context);
284 template <
typename handler_type>
288 handler_type handler(context);
301 generic_driver_onethread<multi_example_handler<single_instance_context>>(all);
303 generic_driver_onethread<single_example_handler<single_instance_context>>(all);
void finish_example(vw &all, E &ec)
v_array< namespace_index > indices
bool ec_is_example_header(example const &ec)
custom_examples_queue(v_array< example *> examples)
multi_instance_context(const std::vector< vw *> &all)
example * get_example(parser *p)
label_type::label_type_t label_type
void on_example(example *ec)
int example_is_newline(example const &ec)
float recur_sensitivity(void *, base_learner &base, example &ec)
void parse_dispatch(vw &all, dispatch_fptr dispatch)
void save_predictor(vw &all, std::string reg_name, size_t current_pass)
single_learner * as_singleline(learner< T, E > *l)
void process_examples(queue_type &examples, handler_type &handler)
bool is_save_cmd(example *ec)
void on_example(example *ec)
void save(example &ec, vw &all)
bool ec_is_example_header(example const &ec)
multi_example_handler(const context_type context)
void end_pass(example &ec, vw &all)
void generic_driver(const std::vector< vw *> &all)
void learn_multi_ex(multi_ex &ec_seq, vw &all)
v_array< example * > _examples
void finish_example(vw &, example &)
void generic_driver_onethread(vw &all)
float sensitivity(example &ec, size_t i=0)
single_instance_context(vw &all)
std::vector< example * > multi_ex
void learn_ex(example &ec, vw &all)
bool example_is_newline_not_header(example &ec, vw &all)
uint64_t end_parsed_examples
bool complete_multi_ex(example *ec)
LEARNER::base_learner * l
single_example_handler(const context_type &context)
ready_examples_queue(vw &master)
std::string final_regressor_name
bool try_complete_multi_ex(example *ec)
multi_learner * as_multiline(learner< T, E > *l)
const char * to_string(prediction_type_t prediction_type)
void drain_examples(vw &all)