Vowpal Wabbit
|
#include <fstream>
#include <sstream>
#include <float.h>
#include <netdb.h>
#include <string.h>
#include <stdio.h>
#include <assert.h>
#include <memory>
#include "parse_example.h"
#include "constant.h"
#include "gd.h"
#include "cache.h"
#include "accumulate.h"
#include "learner.h"
#include "vw.h"
#include <map>
#include "memory.h"
#include "vw_allreduce.h"
#include "rand48.h"
#include "reductions.h"
Go to the source code of this file.
Classes | |
struct | svm_example |
struct | svm_model |
struct | svm_params |
Macros | |
#define | SVM_KER_LIN 0 |
#define | SVM_KER_RBF 1 |
#define | SVM_KER_POLY 2 |
Functions | |
void | free_svm_model (svm_model *model) |
float | kernel_function (const flat_example *fec1, const flat_example *fec2, void *params, size_t kernel_type) |
static int | make_hot_sv (svm_params ¶ms, size_t svi) |
static int | trim_cache (svm_params ¶ms) |
int | save_load_flat_example (io_buf &model_file, bool read, flat_example *&fec) |
void | save_load_svm_model (svm_params ¶ms, io_buf &model_file, bool read, bool text) |
void | save_load (svm_params ¶ms, io_buf &model_file, bool read, bool text) |
float | linear_kernel (const flat_example *fec1, const flat_example *fec2) |
float | poly_kernel (const flat_example *fec1, const flat_example *fec2, int power) |
float | rbf_kernel (const flat_example *fec1, const flat_example *fec2, float bandwidth) |
float | dense_dot (float *v1, v_array< float > v2, size_t n) |
void | predict (svm_params ¶ms, svm_example **ec_arr, float *scores, size_t n) |
void | predict (svm_params ¶ms, single_learner &, example &ec) |
size_t | suboptimality (svm_model *model, double *subopt) |
int | remove (svm_params ¶ms, size_t svi) |
int | add (svm_params ¶ms, svm_example *fec) |
bool | update (svm_params ¶ms, size_t pos) |
void | copy_char (char &c1, const char &c2) noexcept |
void | add_size_t (size_t &t1, const size_t &t2) noexcept |
void | add_double (double &t1, const double &t2) noexcept |
void | sync_queries (vw &all, svm_params ¶ms, bool *train_pool) |
void | train (svm_params ¶ms) |
void | learn (svm_params ¶ms, single_learner &, example &ec) |
LEARNER::base_learner * | kernel_svm_setup (options_i &options, vw &all) |
Variables | |
static size_t | num_kernel_evals = 0 |
static size_t | num_cache_evals = 0 |
#define SVM_KER_LIN 0 |
Definition at line 33 of file kernel_svm.cc.
Referenced by kernel_function(), and kernel_svm_setup().
#define SVM_KER_POLY 2 |
Definition at line 35 of file kernel_svm.cc.
Referenced by kernel_function(), and kernel_svm_setup().
#define SVM_KER_RBF 1 |
Definition at line 34 of file kernel_svm.cc.
Referenced by kernel_function(), and kernel_svm_setup().
int add | ( | svm_params & | params, |
svm_example * | fec | ||
) |
Definition at line 546 of file kernel_svm.cc.
References svm_model::alpha, svm_model::delta, svm_params::model, svm_model::num_support, v_array< T >::push_back(), v_array< T >::size(), and svm_model::support_vec.
Referenced by active_cover_setup(), baseline_setup(), boosting_setup(), bs_setup(), cb_algs_setup(), cb_explore_setup(), cbify_setup(), cbifyldf_setup(), cs_active_setup(), ect_setup(), ExpReplay::expreplay_setup(), ftrl_setup(), EntityRelationTask::initialize(), GraphTask::initialize(), ArgmaxTask::initialize(), kernel_svm_setup(), lda_setup(), log_multi_setup(), memory_tree_setup(), mwt_setup(), nn_setup(), oaa_setup(), OjaNewton_setup(), VW::config::option_group_definition::operator()(), parse_args(), parse_diagnostics(), parse_example_tweaks(), parse_feature_tweaks(), parse_output_model(), parse_source(), recall_tree_setup(), GD::setup(), stagewise_poly_setup(), train(), and warm_cb_setup().
|
noexcept |
Definition at line 618 of file kernel_svm.cc.
|
noexcept |
Definition at line 616 of file kernel_svm.cc.
|
noexcept |
Definition at line 610 of file kernel_svm.cc.
float dense_dot | ( | float * | v1, |
v_array< float > | v2, | ||
size_t | n | ||
) |
Definition at line 450 of file kernel_svm.cc.
void free_svm_model | ( | svm_model * | model | ) |
Definition at line 66 of file kernel_svm.cc.
References svm_model::alpha, v_array< T >::delete_v(), svm_model::delta, free_it(), svm_model::num_support, and svm_model::support_vec.
Referenced by svm_params::~svm_params().
float kernel_function | ( | const flat_example * | fec1, |
const flat_example * | fec2, | ||
void * | params, | ||
size_t | kernel_type | ||
) |
Definition at line 436 of file kernel_svm.cc.
References linear_kernel(), poly_kernel(), rbf_kernel(), SVM_KER_LIN, SVM_KER_POLY, and SVM_KER_RBF.
Referenced by svm_example::compute_kernels(), and svm_example::~svm_example().
LEARNER::base_learner* kernel_svm_setup | ( | options_i & | options, |
vw & | all | ||
) |
Definition at line 867 of file kernel_svm.cc.
References vw::active, VW::config::option_group_definition::add(), add(), VW::config::options_i::add_and_parse(), vw::all_reduce, f, vw::get_random_state(), getLossFunction(), LEARNER::init_learner(), vw::l2_lambda, learn(), vw::loss, LEARNER::make_base(), VW::config::make_option(), predict(), save_load(), LEARNER::learner< T, E >::set_save_load(), SVM_KER_LIN, SVM_KER_POLY, SVM_KER_RBF, AllReduce::total, and VW::config::options_i::was_supplied().
Referenced by parse_reductions().
void learn | ( | svm_params & | params, |
single_learner & | , | ||
example & | ec | ||
) |
Definition at line 833 of file kernel_svm.cc.
References svm_params::all, svm_model::alpha, example::example_counter, f, flatten_sort_example(), svm_example::init_svm_example(), example::l, label_data::label, example::loss, svm_params::loss_sum, svm_params::model, num_cache_evals, num_kernel_evals, svm_model::num_support, svm_params::pool, svm_params::pool_pos, svm_params::pool_size, example::pred, predict(), polyprediction::scalar, polylabel::simple, vw::trace_message, train(), vw::training, and trim_cache().
Referenced by kernel_svm_setup().
float linear_kernel | ( | const flat_example * | fec1, |
const flat_example * | fec2 | ||
) |
Definition at line 387 of file kernel_svm.cc.
References f, flat_example::fs, features::indicies, features::size(), and features::values.
Referenced by kernel_function(), memory_tree_ns::normalized_linear_prod(), poly_kernel(), and rbf_kernel().
|
static |
Definition at line 202 of file kernel_svm.cc.
References svm_params::all, svm_model::alpha, svm_example::compute_kernels(), svm_model::delta, svm_example::krow, svm_params::model, svm_model::num_support, v_array< T >::push_back(), v_array< T >::size(), svm_model::support_vec, and vw::trace_message.
Referenced by train().
float poly_kernel | ( | const flat_example * | fec1, |
const flat_example * | fec2, | ||
int | power | ||
) |
Definition at line 421 of file kernel_svm.cc.
References linear_kernel().
Referenced by kernel_function().
void predict | ( | svm_params & | params, |
svm_example ** | ec_arr, | ||
float * | scores, | ||
size_t | n | ||
) |
Definition at line 457 of file kernel_svm.cc.
References svm_model::alpha, svm_example::compute_kernels(), dense_dot(), svm_params::lambda, svm_params::model, and svm_model::num_support.
Referenced by kernel_svm_setup(), learn(), predict(), and train().
void predict | ( | svm_params & | params, |
single_learner & | , | ||
example & | ec | ||
) |
Definition at line 471 of file kernel_svm.cc.
References svm_params::all, flatten_sort_example(), svm_example::init_svm_example(), example::pred, predict(), polyprediction::scalar, and svm_example::~svm_example().
float rbf_kernel | ( | const flat_example * | fec1, |
const flat_example * | fec2, | ||
float | bandwidth | ||
) |
Definition at line 429 of file kernel_svm.cc.
References linear_kernel(), and flat_example::total_sum_feat_sq.
Referenced by kernel_function().
int remove | ( | svm_params & | params, |
size_t | svi | ||
) |
Definition at line 511 of file kernel_svm.cc.
References svm_model::alpha, svm_model::delta, svm_example::krow, svm_model::num_support, v_array< T >::pop(), v_array< T >::size(), svm_model::support_vec, and svm_example::~svm_example().
void save_load | ( | svm_params & | params, |
io_buf & | model_file, | ||
bool | read, | ||
bool | text | ||
) |
Definition at line 376 of file kernel_svm.cc.
References svm_params::all, save_load_svm_model(), and vw::trace_message.
Referenced by kernel_svm_setup().
int save_load_flat_example | ( | io_buf & | model_file, |
bool | read, | ||
flat_example *& | fec | ||
) |
Definition at line 261 of file kernel_svm.cc.
References v_array< T >::begin(), io_buf::bin_read_fixed(), io_buf::bin_write_fixed(), v_array< T >::end(), features::indicies, v_array< T >::resize(), v_array< T >::size(), features::size(), and features::values.
Referenced by save_load_svm_model(), and sync_queries().
void save_load_svm_model | ( | svm_params & | params, |
io_buf & | model_file, | ||
bool | read, | ||
bool | text | ||
) |
Definition at line 334 of file kernel_svm.cc.
References svm_model::alpha, v_array< T >::begin(), bin_text_read_write_fixed(), svm_model::delta, io_buf::files, svm_example::init_svm_example(), svm_params::model, svm_model::num_support, v_array< T >::push_back(), v_array< T >::resize(), save_load_flat_example(), v_array< T >::size(), and svm_model::support_vec.
Referenced by save_load().
size_t suboptimality | ( | svm_model * | model, |
double * | subopt | ||
) |
Definition at line 486 of file kernel_svm.cc.
References svm_model::alpha, svm_model::delta, svm_model::num_support, and svm_model::support_vec.
Referenced by train().
void sync_queries | ( | vw & | all, |
svm_params & | params, | ||
bool * | train_pool | ||
) |
Definition at line 620 of file kernel_svm.cc.
References vw::all_reduce, v_array< T >::begin(), v_array< T >::delete_v(), v_array< T >::end(), svm_example::ex, io_buf::head, svm_example::init_svm_example(), svm_params::local_begin, svm_params::local_end, AllReduce::node, svm_params::pool, svm_params::pool_pos, svm_params::pool_size, save_load_flat_example(), io_buf::space, and AllReduce::total.
Referenced by train().
void train | ( | svm_params & | params | ) |
Definition at line 696 of file kernel_svm.cc.
References svm_params::_random_state, svm_params::active, svm_params::active_c, svm_params::active_pool_greedy, add(), svm_params::all, svm_example::ex, flat_example::example_counter, flat_example::l, make_hot_sv(), svm_params::maxcache, svm_params::model, svm_model::num_support, svm_params::para_active, svm_params::pool, svm_params::pool_pos, svm_params::pool_size, predict(), svm_params::reprocess, polylabel::simple, suboptimality(), svm_params::subsample, sync_queries(), vw::trace_message, vw::training, update(), and label_data::weight.
Referenced by learn().
|
static |
Definition at line 245 of file kernel_svm.cc.
References svm_example::clear_kernels(), svm_example::krow, svm_params::maxcache, svm_params::model, svm_model::num_support, and v_array< T >::size().
Referenced by learn().
bool update | ( | svm_params & | params, |
size_t | pos | ||
) |
Definition at line 557 of file kernel_svm.cc.
References svm_model::alpha, v_array< T >::begin(), svm_example::compute_kernels(), svm_model::delta, dense_dot(), svm_example::ex, svm_example::krow, flat_example::l, label_data::label, svm_params::lambda, svm_params::model, svm_model::num_support, polylabel::simple, svm_model::support_vec, and label_data::weight.
Referenced by train().
|
static |
Definition at line 45 of file kernel_svm.cc.
Referenced by svm_example::compute_kernels(), learn(), and svm_params::~svm_params().
|
static |
Definition at line 44 of file kernel_svm.cc.
Referenced by svm_example::compute_kernels(), learn(), and svm_params::~svm_params().