419 auto n = scoped_calloc_or_throw<nn>();
420 bool meanfield =
false;
422 new_options.add(
make_option(
"nn", n->k).keep().help(
"Sigmoidal feedforward network with <k> hidden units"))
425 .help(
"Train or test sigmoidal feedforward network with input passthrough."))
426 .
add(
make_option(
"multitask", n->multitask).keep().help(
"Share hidden layer across all reduced tasks."))
427 .
add(
make_option(
"dropout", n->dropout).keep().help(
"Train or test sigmoidal feedforward network using dropout."))
428 .
add(
make_option(
"meanfield", meanfield).help(
"Train or test sigmoidal feedforward network using mean field."));
437 if (n->multitask && !all.
quiet)
438 std::cerr <<
"using multitask sharing for neural network " << (all.
training ?
"training" :
"testing") << std::endl;
444 std::cerr <<
"using mean field for neural network " << (all.
training ?
"training" :
"testing") << std::endl;
447 if (n->dropout && !all.
quiet)
448 std::cerr <<
"using dropout for neural network " << (all.
training ?
"training" :
"testing") << std::endl;
450 if (n->inpass && !all.
quiet)
451 std::cerr <<
"using input passthrough for neural network " << (all.
training ?
"training" :
"testing") << std::endl;
453 n->finished_setup =
false;
458 n->save_xsubi = n->xsubi;
460 n->hidden_units = calloc_or_throw<float>(n->k);
461 n->dropped_out = calloc_or_throw<bool>(n->k);
462 n->hidden_units_pred = calloc_or_throw<polyprediction>(n->k);
463 n->hiddenbias_pred = calloc_or_throw<polyprediction>(n->k);
466 n->increment = base->increment;
469 init_learner(n, base, predict_or_learn_multi<true, true>, predict_or_learn_multi<false, true>, n->k + 1);
void set_multipredict(void(*u)(T &, L &, E &, size_t, size_t, polyprediction *, bool))
base_learner * make_base(learner< T, E > &base)
virtual void add_and_parse(const option_group_definition &group)=0
std::shared_ptr< rand_state > get_random_state()
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 multipredict(nn &n, single_learner &base, example &ec, size_t count, size_t step, polyprediction *pred, bool finalize_predictions)
virtual bool was_supplied(const std::string &key)=0
int add(svm_params ¶ms, svm_example *fec)
typed_option< T > make_option(std::string name, T &location)
void set_end_pass(void(*f)(T &))
void finish_example(vw &all, nn &, example &ec)
LEARNER::base_learner * setup_base(options_i &options, vw &all)
loss_function * getLossFunction(vw &all, std::string funcName, float function_parameter)