From a54775103541ea37f54269de1ba1e1396a6d7b30 Mon Sep 17 00:00:00 2001 From: RĂ©mi Flamary Date: Fri, 24 Apr 2020 17:32:57 +0200 Subject: exmaples in sections --- examples/plot_gromov.py | 106 ------------------------------------------------ 1 file changed, 106 deletions(-) delete mode 100644 examples/plot_gromov.py (limited to 'examples/plot_gromov.py') diff --git a/examples/plot_gromov.py b/examples/plot_gromov.py deleted file mode 100644 index deb2f86..0000000 --- a/examples/plot_gromov.py +++ /dev/null @@ -1,106 +0,0 @@ -# -*- coding: utf-8 -*- -""" -========================== -Gromov-Wasserstein example -========================== - -This example is designed to show how to use the Gromov-Wassertsein distance -computation in POT. -""" - -# Author: Erwan Vautier -# Nicolas Courty -# -# License: MIT License - -import scipy as sp -import numpy as np -import matplotlib.pylab as pl -from mpl_toolkits.mplot3d import Axes3D # noqa -import ot - -############################################################################# -# -# Sample two Gaussian distributions (2D and 3D) -# --------------------------------------------- -# -# The Gromov-Wasserstein distance allows to compute distances with samples that -# do not belong to the same metric space. For demonstration purpose, we sample -# two Gaussian distributions in 2- and 3-dimensional spaces. - - -n_samples = 30 # nb samples - -mu_s = np.array([0, 0]) -cov_s = np.array([[1, 0], [0, 1]]) - -mu_t = np.array([4, 4, 4]) -cov_t = np.array([[1, 0, 0], [0, 1, 0], [0, 0, 1]]) - - -xs = ot.datasets.make_2D_samples_gauss(n_samples, mu_s, cov_s) -P = sp.linalg.sqrtm(cov_t) -xt = np.random.randn(n_samples, 3).dot(P) + mu_t - -############################################################################# -# -# Plotting the distributions -# -------------------------- - - -fig = pl.figure() -ax1 = fig.add_subplot(121) -ax1.plot(xs[:, 0], xs[:, 1], '+b', label='Source samples') -ax2 = fig.add_subplot(122, projection='3d') -ax2.scatter(xt[:, 0], xt[:, 1], xt[:, 2], color='r') -pl.show() - -############################################################################# -# -# Compute distance kernels, normalize them and then display -# --------------------------------------------------------- - - -C1 = sp.spatial.distance.cdist(xs, xs) -C2 = sp.spatial.distance.cdist(xt, xt) - -C1 /= C1.max() -C2 /= C2.max() - -pl.figure() -pl.subplot(121) -pl.imshow(C1) -pl.subplot(122) -pl.imshow(C2) -pl.show() - -############################################################################# -# -# Compute Gromov-Wasserstein plans and distance -# --------------------------------------------- - -p = ot.unif(n_samples) -q = ot.unif(n_samples) - -gw0, log0 = ot.gromov.gromov_wasserstein( - C1, C2, p, q, 'square_loss', verbose=True, log=True) - -gw, log = ot.gromov.entropic_gromov_wasserstein( - C1, C2, p, q, 'square_loss', epsilon=5e-4, log=True, verbose=True) - - -print('Gromov-Wasserstein distances: ' + str(log0['gw_dist'])) -print('Entropic Gromov-Wasserstein distances: ' + str(log['gw_dist'])) - - -pl.figure(1, (10, 5)) - -pl.subplot(1, 2, 1) -pl.imshow(gw0, cmap='jet') -pl.title('Gromov Wasserstein') - -pl.subplot(1, 2, 2) -pl.imshow(gw, cmap='jet') -pl.title('Entropic Gromov Wasserstein') - -pl.show() -- cgit v1.2.3