ott.tools.sinkhorn_divergence.sinkhorn_divergence#
- ott.tools.sinkhorn_divergence.sinkhorn_divergence(geom, *args, a=None, b=None, sinkhorn_kwargs=mappingproxy({}), static_b=False, share_epsilon=True, symmetric_sinkhorn=True, **kwargs)[source]#
Compute Sinkhorn divergence defined by a geometry, weights, parameters.
- Parameters
args (
Any
) – Positional arguments toprepare_divergences()
that are specific to each geometry.a (
Optional
[Array
]) – the weight of each input point. The sum of all elements of a must match that of b to converge.b (
Optional
[Array
]) – the weight of each target point. The sum of all elements of b must match that of a to converge.sinkhorn_kwargs (
Mapping
[str
,Any
]) – keywords arguments forSinkhorn
that is called twice ifstatic_b = True
else 3 times.static_b (
bool
) – if True, divergence of measure b against itself is not computed.share_epsilon (
bool
) – if True, enforces that the same epsilon regularizer is shared for all 2 or 3 terms of the Sinkhorn divergence. In that case, the epsilon will be by default that used when comparing x to y (contained in the first geometry). This flag is set to True by default, because in the default setting, the epsilon regularization is a function of the mean of the cost matrix.symmetric_sinkhorn (
bool
) – Use Sinkhorn updates in Eq. 25 of [Feydy et al., 2019] for symmetric terms comparing x/x and y/y.kwargs (
Any
) – keywords arguments to the generic class. This is specific to each geometry.
- Return type
SinkhornDivergenceOutput
- Returns
Sinkhorn divergence value, three pairs of potentials, three costs.