Skip to content

Commit

Permalink
Update cosine_similarity.cc
Browse files Browse the repository at this point in the history
  • Loading branch information
Zheng-Bicheng authored Nov 7, 2024
1 parent 30c8cdc commit 5275365
Showing 1 changed file with 3 additions and 8 deletions.
11 changes: 3 additions & 8 deletions fastdeploy/vision/utils/cosine_similarity.cc
Original file line number Diff line number Diff line change
Expand Up @@ -23,24 +23,19 @@ float CosineSimilarity(const std::vector<float>& a, const std::vector<float>& b,
FDASSERT((a.size() == b.size()) && (a.size() != 0),
"The size of a and b must be equal and >= 1.");
size_t num_val = a.size();
float mul_ab = 0.f;
if (normalized) {
float mul_a = 0.f, mul_b = 0.f, mul_ab = 0.f;
for (size_t i = 0; i < num_val; ++i) {
mul_a += (a[i] * a[i]);
mul_b += (b[i] * b[i]);
mul_ab += (a[i] * b[i]);
}
return (mul_ab / (std::sqrt(mul_a) * std::sqrt(mul_b)));
return mul_ab;
}
auto norm_a = L2Normalize(a);
auto norm_b = L2Normalize(b);
float mul_a = 0.f, mul_b = 0.f, mul_ab = 0.f;
for (size_t i = 0; i < num_val; ++i) {
mul_a += (norm_a[i] * norm_a[i]);
mul_b += (norm_b[i] * norm_b[i]);
mul_ab += (norm_a[i] * norm_b[i]);
}
return (mul_ab / (std::sqrt(mul_a) * std::sqrt(mul_b)));
return mul_ab;
}

} // namespace utils
Expand Down

0 comments on commit 5275365

Please sign in to comment.