From efa02ed76800dc640b3188544292c474a64591c9 Mon Sep 17 00:00:00 2001 From: Eugene Yurtsev Date: Wed, 9 Aug 2023 18:56:51 -0400 Subject: [PATCH] Suppress divide by zero wranings for cosine similarity (#9006) Suppress run time warnings for divide by zero as the downstream code handles the scenario (handling inf and nan) --- libs/langchain/langchain/utils/math.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libs/langchain/langchain/utils/math.py b/libs/langchain/langchain/utils/math.py index ae3c2919342..77784ba2a49 100644 --- a/libs/langchain/langchain/utils/math.py +++ b/libs/langchain/langchain/utils/math.py @@ -20,7 +20,9 @@ def cosine_similarity(X: Matrix, Y: Matrix) -> np.ndarray: X_norm = np.linalg.norm(X, axis=1) Y_norm = np.linalg.norm(Y, axis=1) - similarity = np.dot(X, Y.T) / np.outer(X_norm, Y_norm) + # Ignore divide by zero errors run time warnings as those are handled below. + with np.errstate(divide="ignore", invalid="ignore"): + similarity = np.dot(X, Y.T) / np.outer(X_norm, Y_norm) similarity[np.isnan(similarity) | np.isinf(similarity)] = 0.0 return similarity