1301 auto ld = scoped_calloc_or_throw<lda>();
1304 new_options.add(
make_option(
"lda", ld->topics).keep().help(
"Run lda with <int> topics"))
1307 .default_value(0.1
f)
1308 .help(
"Prior on sparsity of per-document topic weights"))
1311 .default_value(0.1
f)
1312 .help(
"Prior on sparsity of topic distributions"))
1313 .
add(
make_option(
"lda_D", ld->lda_D).default_value(10000.0
f).help(
"Number of documents"))
1314 .
add(
make_option(
"lda_epsilon", ld->lda_epsilon).default_value(0.001
f).help(
"Loop convergence threshold"))
1315 .
add(
make_option(
"minibatch", ld->minibatch).default_value(1).help(
"Minibatch size, for LDA"))
1316 .
add(
make_option(
"math-mode", math_mode).default_value(
USE_SIMD).help(
"Math mode: simd, accuracy, fast-approx"))
1317 .
add(
make_option(
"metrics", ld->compute_coherence_metrics).help(
"Compute metrics"));
1318 options.add_and_parse(new_options);
1323 if (!options.was_supplied(
"lda"))
1326 all.lda = (uint32_t)ld->topics;
1328 ld->sorted_features = std::vector<index_feature>();
1329 ld->total_lambda_init =
false;
1331 ld->example_t = all.initial_t;
1332 if (ld->compute_coherence_metrics)
1334 ld->feature_counts.resize((uint32_t)(
UINT64_ONE << all.num_bits));
1335 ld->feature_to_example_map.resize((uint32_t)(
UINT64_ONE << all.num_bits));
1338 float temp = ceilf(logf((
float)(all.lda * 2 + 1)) / logf(2.
f));
1340 all.weights.stride_shift((
size_t)temp);
1341 all.random_weights =
true;
1342 all.add_constant =
false;
1346 std::cerr <<
"your learning rate is too high, setting it to 1" << std::endl;
1347 all.eta = std::min(all.eta, 1.f);
1350 size_t minibatch2 =
next_pow2(ld->minibatch);
1351 if (minibatch2 > all.p->ring_size)
1353 bool previous_strict_parse = all.p->strict_parse;
1355 all.p =
new parser{minibatch2, previous_strict_parse};
1358 ld->v.resize(all.lda * ld->minibatch);
1360 ld->decay_levels.push_back(0.
f);
void learn_with_metrics(lda &l, LEARNER::single_learner &base, example &ec)
base_learner * make_base(learner< T, E > &base)
void predict_with_metrics(lda &l, LEARNER::single_learner &base, example &ec)
void set_save_load(void(*sl)(T &, io_buf &, bool, bool))
size_t next_pow2(size_t x)
void set_finish_example(void(*f)(vw &all, T &, E &))
void finish_example(vw &, lda &, example &)
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 delete_scalars(void *v)
void learn(lda &l, LEARNER::single_learner &, example &ec)
void save_load(lda &l, io_buf &model_file, bool read, bool text)
int add(svm_params ¶ms, svm_example *fec)
typed_option< T > make_option(std::string name, T &location)
constexpr uint64_t UINT64_ONE
void set_end_pass(void(*f)(T &))
void predict(lda &l, LEARNER::single_learner &base, example &ec)
void end_examples(lda &l, T &weights)
void set_end_examples(void(*f)(T &))
label_parser no_label_parser