From 527536565ad54cf39406beac784dac84f135f33e Mon Sep 17 00:00:00 2001 From: Zheng-Bicheng <58363586+Zheng-Bicheng@users.noreply.github.com> Date: Thu, 7 Nov 2024 16:41:03 +0800 Subject: [PATCH] Update cosine_similarity.cc --- fastdeploy/vision/utils/cosine_similarity.cc | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/fastdeploy/vision/utils/cosine_similarity.cc b/fastdeploy/vision/utils/cosine_similarity.cc index 20482ada99..881e79ce70 100644 --- a/fastdeploy/vision/utils/cosine_similarity.cc +++ b/fastdeploy/vision/utils/cosine_similarity.cc @@ -23,24 +23,19 @@ float CosineSimilarity(const std::vector& a, const std::vector& 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