From 986698478f8e52a12360fc01395cc3410e9c6ebf Mon Sep 17 00:00:00 2001 From: Shallow Cosmic <72877707+shallowcosmicjumper@users.noreply.github.com> Date: Sat, 30 Dec 2023 14:11:28 +0000 Subject: [PATCH] Set a lowerbound of {blur} for diameter. This should fix "ValueError: Maximum allowed size exceeded" in epsilon_schedule() caused by np.log(0). --- geomloss/sinkhorn_divergence.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/geomloss/sinkhorn_divergence.py b/geomloss/sinkhorn_divergence.py index c6deafe..9e4eb64 100644 --- a/geomloss/sinkhorn_divergence.py +++ b/geomloss/sinkhorn_divergence.py @@ -157,6 +157,9 @@ def scaling_parameters(x, y, p, blur, reach, diameter, scaling): if diameter is None: D = x.shape[-1] diameter = max_diameter(x.view(-1, D), y.view(-1, D)) + + # small diameter np.log() in epsilon_schedule() cannot be 0. + diameter = max(diameter, blur) eps = blur ** p rho = None if reach is None else reach ** p