13 template <
bool is_learn,
float (*link)(
float in)>
28 template <
float (*link)(
float in)>
32 base.
multipredict(ec, 0, count, pred, finalize_predictions);
51 inline float id(
float in) {
return in; }
55 auto s = scoped_calloc_or_throw<scorer>();
59 .default_value(
"identity")
61 .help(
"Specify the link function: identity, logistic, glf1 or poisson"));
73 if (link ==
"identity")
74 l = &
init_learner(s, base, predict_or_learn<true, id>, predict_or_learn<false, id>);
75 else if (link ==
"logistic")
77 l = &
init_learner(s, base, predict_or_learn<true, logistic>, predict_or_learn<false, logistic>);
78 multipredict_f = multipredict<logistic>;
80 else if (link ==
"glf1")
82 l = &
init_learner(s, base, predict_or_learn<true, glf1>, predict_or_learn<false, glf1>);
83 multipredict_f = multipredict<glf1>;
85 else if (link ==
"poisson")
87 l = &
init_learner(s, base, predict_or_learn<true, expf>, predict_or_learn<false, expf>);
88 multipredict_f = multipredict<expf>;
91 THROW(
"Unknown link function: " << link);
void set_multipredict(void(*u)(T &, L &, E &, size_t, size_t, polyprediction *, bool))
void set_update(void(*u)(T &data, L &base, E &))
void predict(E &ec, size_t i=0)
LEARNER::base_learner * scorer_setup(options_i &options, vw &all)
base_learner * make_base(learner< T, E > &base)
virtual void add_and_parse(const option_group_definition &group)=0
single_learner * as_singleline(learner< T, E > *l)
void(* set_minmax)(shared_data *sd, float label)
virtual float getLoss(shared_data *, float prediction, float label)=0
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 multipredict(scorer &, LEARNER::single_learner &base, example &ec, size_t count, size_t, polyprediction *pred, bool finalize_predictions)
void update(scorer &s, LEARNER::single_learner &base, example &ec)
LEARNER::single_learner * scorer
option_group_definition & add(T &&op)
typed_option< T > make_option(std::string name, T &location)
void multipredict(E &ec, size_t lo, size_t count, polyprediction *pred, bool finalize_predictions)
LEARNER::base_learner * setup_base(options_i &options, vw &all)
void predict_or_learn(scorer &s, LEARNER::single_learner &base, example &ec)
void update(E &ec, size_t i=0)
void learn(E &ec, size_t i=0)