18 template <
bool is_learn>
25 ec.
l.
simple = {FLT_MAX, 1.f, 0.f};
26 uint32_t multilabel_index = 0;
27 for (uint32_t i = 0; i < o.
k; i++)
32 if (multilabels.
label_v.
size() > multilabel_index && multilabels.
label_v[multilabel_index] == i)
44 if (is_learn && multilabel_index < multilabels.
label_v.
size())
45 std::cout <<
"label " << multilabels.
label_v[multilabel_index] <<
" is not in {0," << o.
k - 1
46 <<
"} This won't work right." << std::endl;
60 auto data = scoped_calloc_or_throw<multi_oaa>();
62 new_options.add(
make_option(
"multilabel_oaa", data->k).keep().help(
"One-against-all multilabel with <k> labels"));
void predict(E &ec, size_t i=0)
LEARNER::base_learner * multilabel_oaa_setup(options_i &options, vw &all)
void(* delete_prediction)(void *)
void output_example(vw &all, example &ec)
void(* delete_label)(void *)
label_type::label_type_t label_type
base_learner * make_base(learner< T, E > &base)
virtual void add_and_parse(const option_group_definition &group)=0
void predict_or_learn(multi_oaa &o, LEARNER::single_learner &base, example &ec)
single_learner * as_singleline(learner< T, E > *l)
void set_finish_example(void(*f)(vw &all, T &, E &))
learner< T, E > & init_learner(free_ptr< T > &dat, L *base, void(*learn)(T &, L &, E &), void(*predict)(T &, L &, E &), size_t ws, prediction_type::prediction_type_t pred_type)
void push_back(const T &new_ele)
virtual bool was_supplied(const std::string &key)=0
void finish_example(vw &, example &)
MULTILABEL::labels multilabels
typed_option< T > make_option(std::string name, T &location)
MULTILABEL::labels multilabels
v_array< uint32_t > label_v
LEARNER::base_learner * setup_base(options_i &options, vw &all)
void learn(E &ec, size_t i=0)