Vowpal Wabbit
Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
VW::topk Class Reference

Public Types

using const_iterator_t = container_t::const_iterator
 

Public Member Functions

 topk (uint32_t k_num)
 
void predict (LEARNER::single_learner &base, multi_ex &ec_seq)
 
void learn (LEARNER::single_learner &base, multi_ex &ec_seq)
 
std::pair< const_iterator_t, const_iterator_tget_container_view ()
 
void clear_container ()
 

Private Types

using container_t = std::multimap< float, v_array< char > >
 

Private Member Functions

void update_priority_queue (float pred, v_array< char > &tag)
 

Private Attributes

const uint32_t _k_num
 
container_t _pr_queue
 

Detailed Description

Definition at line 20 of file topk.cc.

Member Typedef Documentation

◆ const_iterator_t

using VW::topk::const_iterator_t = container_t::const_iterator

Definition at line 25 of file topk.cc.

◆ container_t

using VW::topk::container_t = std::multimap<float, v_array<char> >
private

Definition at line 22 of file topk.cc.

Constructor & Destructor Documentation

◆ topk()

VW::topk::topk ( uint32_t  k_num)

Definition at line 41 of file topk.cc.

41 : _k_num(k_num) {}
const uint32_t _k_num
Definition: topk.cc:36

Member Function Documentation

◆ clear_container()

void VW::topk::clear_container ( )

Definition at line 79 of file topk.cc.

References _pr_queue.

Referenced by finish_example().

79 { _pr_queue.clear(); }
container_t _pr_queue
Definition: topk.cc:37

◆ get_container_view()

std::pair< VW::topk::const_iterator_t, VW::topk::const_iterator_t > VW::topk::get_container_view ( )

Definition at line 74 of file topk.cc.

References _pr_queue.

Referenced by finish_example().

75 {
76  return {_pr_queue.cbegin(), _pr_queue.cend()};
77 }
container_t _pr_queue
Definition: topk.cc:37

◆ learn()

void VW::topk::learn ( LEARNER::single_learner base,
multi_ex ec_seq 
)

Definition at line 52 of file topk.cc.

References LEARNER::learner< T, E >::learn(), and update_priority_queue().

Referenced by predict_or_learn().

53 {
54  for (auto ec : ec_seq)
55  {
56  base.learn(*ec);
57  update_priority_queue(ec->pred.scalar, ec->tag);
58  }
59 }
void update_priority_queue(float pred, v_array< char > &tag)
Definition: topk.cc:61
void learn(E &ec, size_t i=0)
Definition: learner.h:160

◆ predict()

void VW::topk::predict ( LEARNER::single_learner base,
multi_ex ec_seq 
)

Definition at line 43 of file topk.cc.

References LEARNER::learner< T, E >::predict(), and update_priority_queue().

Referenced by predict_or_learn().

44 {
45  for (auto ec : ec_seq)
46  {
47  base.predict(*ec);
48  update_priority_queue(ec->pred.scalar, ec->tag);
49  }
50 }
void predict(E &ec, size_t i=0)
Definition: learner.h:169
void update_priority_queue(float pred, v_array< char > &tag)
Definition: topk.cc:61

◆ update_priority_queue()

void VW::topk::update_priority_queue ( float  pred,
v_array< char > &  tag 
)
private

Definition at line 61 of file topk.cc.

References _k_num, and _pr_queue.

Referenced by learn(), and predict().

62 {
63  if (_pr_queue.size() < _k_num)
64  {
65  _pr_queue.insert({pred, tag});
66  }
67  else if (_pr_queue.begin()->first < pred)
68  {
69  _pr_queue.erase(_pr_queue.begin());
70  _pr_queue.insert({pred, tag});
71  }
72 }
const uint32_t _k_num
Definition: topk.cc:36
container_t _pr_queue
Definition: topk.cc:37

Member Data Documentation

◆ _k_num

const uint32_t VW::topk::_k_num
private

Definition at line 36 of file topk.cc.

Referenced by update_priority_queue().

◆ _pr_queue

container_t VW::topk::_pr_queue
private

Definition at line 37 of file topk.cc.

Referenced by clear_container(), get_container_view(), and update_priority_queue().


The documentation for this class was generated from the following file: