21 #ifndef EMBEDDING_RANKER_H_
22 #define EMBEDDING_RANKER_H_
42 template <
typename SpecificFrameFeatures>
49 const SpecificFrameFeatures& _features)
const;
51 std::vector<float>
inverse_score_vector(
const float* query_vecs,
const SpecificFrameFeatures& _features)
const;
54 template <
typename SpecificFrameFeatures>
56 const std::vector<float>& query_vec,
const SpecificFrameFeatures& _dataset_features)
const {
57 return inverse_score_vector(query_vec.data(), _dataset_features);
60 template <
typename SpecificFrameFeatures>
62 const float* query_vec,
const SpecificFrameFeatures& features)
const {
63 size_t target_dim{ features.dim() };
66 std::vector<float> scores;
67 scores.resize(features.size());
72 const float* raw_frame_features = features.fv(frame_ID);
75 auto dist = d_cos_normalized(query_vec, raw_frame_features, target_dim) / 2.0F;
77 scores[frame_ID] = dist;
Definition: embedding-ranker.h:43
std::vector< float > inverse_score_vector(const std::vector< float > &query_vecs, const SpecificFrameFeatures &_features) const
Definition: embedding-ranker.h:55
std::vector< float > inverse_score_vector(const float *query_vecs, const SpecificFrameFeatures &_features) const
Definition: embedding-ranker.h:61
virtual ~EmbeddingRanker() noexcept
Definition: embedding-ranker.h:45
File implementing distance calculations on vectors.
Definition: common-types.h:33
unsigned long FrameId
Definition: common-types.h:75
Until C++20 and ranges come.
Definition: common.h:65