Vowpal Wabbit
Classes | Namespaces | Functions
autolink.cc File Reference
#include "autolink.h"
#include "learner.h"
#include "global_data.h"
#include "parse_args.h"
#include <cstdint>

Go to the source code of this file.

Classes

struct  VW::autolink
 

Namespaces

 VW
 

Functions

template<bool is_learn>
void predict_or_learn (VW::autolink &b, LEARNER::single_learner &base, example &ec)
 
LEARNER::base_learnerautolink_setup (options_i &options, vw &all)
 

Function Documentation

◆ autolink_setup()

LEARNER::base_learner* autolink_setup ( options_i options,
vw all 
)

Definition at line 85 of file autolink.cc.

References VW::config::option_group_definition::add(), VW::config::options_i::add_and_parse(), LEARNER::as_singleline(), LEARNER::init_learner(), LEARNER::make_base(), VW::config::make_option(), setup_base(), parameters::stride_shift(), VW::config::options_i::was_supplied(), and vw::weights.

Referenced by parse_reductions().

86 {
87  uint32_t d;
88  option_group_definition new_options("Autolink");
89  new_options.add(make_option("autolink", d).keep().help("create link function with polynomial d"));
90  options.add_and_parse(new_options);
91 
92  if (!options.was_supplied("autolink"))
93  return nullptr;
94 
95  auto autolink_reduction = scoped_calloc_or_throw<VW::autolink>(d, all.weights.stride_shift());
96  return make_base(init_learner(
97  autolink_reduction, as_singleline(setup_base(options, all)), predict_or_learn<true>, predict_or_learn<false>));
98 }
parameters weights
Definition: global_data.h:537
base_learner * make_base(learner< T, E > &base)
Definition: learner.h:462
virtual void add_and_parse(const option_group_definition &group)=0
single_learner * as_singleline(learner< T, E > *l)
Definition: learner.h:476
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)
Definition: learner.h:369
virtual bool was_supplied(const std::string &key)=0
typed_option< T > make_option(std::string name, T &location)
Definition: options.h:80
uint32_t stride_shift()
LEARNER::base_learner * setup_base(options_i &options, vw &all)
Definition: parse_args.cc:1222

◆ predict_or_learn()

template<bool is_learn>
void predict_or_learn ( VW::autolink b,
LEARNER::single_learner base,
example ec 
)

Definition at line 77 of file autolink.cc.

References VW::autolink::learn(), and VW::autolink::predict().

78 {
79  if (is_learn)
80  b.learn(base, ec);
81  else
82  b.predict(base, ec);
83 }