14 namespace shared_feature_merger
17 "csoaa_ldf",
"wap_ldf",
"cb_adf",
"explore_eval",
"cbify_ldf",
"cb_explore_adf",
"warm_cb"};
21 for (
const auto& opt : option_strings)
33 template <
bool is_learn>
36 if (ec_seq.size() == 0)
37 THROW(
"cb_adf: At least one action must be provided for an example to be valid.");
39 multi_ex::value_type shared_example =
nullptr;
42 if (has_example_header)
44 shared_example = ec_seq[0];
45 ec_seq.erase(ec_seq.begin());
48 std::swap(ec_seq[0]->pred, shared_example->
pred);
50 if (ec_seq.size() == 0)
57 if (has_example_header)
60 std::swap(shared_example->pred, ec_seq[0]->
pred);
61 ec_seq.insert(ec_seq.
begin(), shared_example);
70 auto data = scoped_calloc_or_throw<sfm_data>();
void predict(E &ec, size_t i=0)
bool ec_is_example_header(example const &ec)
void del_example_namespaces_from_example(example &target, example &source)
base_learner * make_base(learner< T, E > &base)
bool use_reduction(config::options_i &options)
LEARNER::base_learner * shared_feature_merger_setup(config::options_i &options, vw &all)
static const std::vector< std::string > option_strings
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)
virtual bool was_supplied(const std::string &key)=0
std::vector< example * > multi_ex
void predict_or_learn(sfm_data &, LEARNER::multi_learner &base, multi_ex &ec_seq)
LEARNER::base_learner * setup_base(options_i &options, vw &all)
void learn(E &ec, size_t i=0)
multi_learner * as_multiline(learner< T, E > *l)
void add_example_namespaces_from_example(example &target, example &source)