Vowpal Wabbit
Functions
interact.h File Reference

Go to the source code of this file.

Functions

LEARNER::base_learnerinteract_setup (VW::config::options_i &options, vw &all)
 

Function Documentation

◆ interact_setup()

LEARNER::base_learner* interact_setup ( VW::config::options_i options,
vw all 
)

Definition at line 156 of file interact.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(), vw::quiet, setup_base(), and VW::config::options_i::was_supplied().

Referenced by parse_reductions().

157 {
158  std::string s;
159  option_group_definition new_options("Interact via elementwise multiplication");
160  new_options.add(
161  make_option("interact", s).keep().help("Put weights on feature products from namespaces <n1> and <n2>"));
162  options.add_and_parse(new_options);
163 
164  if (!options.was_supplied("interact"))
165  return nullptr;
166 
167  if (s.length() != 2)
168  {
169  std::cerr << "Need two namespace arguments to interact: " << s << " won't do EXITING\n";
170  return nullptr;
171  }
172 
173  auto data = scoped_calloc_or_throw<interact>();
174 
175  data->n1 = (unsigned char)s[0];
176  data->n2 = (unsigned char)s[1];
177  if (!all.quiet)
178  std::cerr << "Interacting namespaces " << data->n1 << " and " << data->n2 << std::endl;
179  data->all = &all;
180 
183  data, as_singleline(setup_base(options, all)), predict_or_learn<true, true>, predict_or_learn<false, true>, 1);
184 
185  return make_base(*l);
186 }
base_learner * make_base(learner< T, E > &base)
Definition: learner.h:462
bool quiet
Definition: global_data.h:487
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
LEARNER::base_learner * setup_base(options_i &options, vw &all)
Definition: parse_args.cc:1222