If you run a KeOps script for the first time, the internal engine may take a few minutes to compile all the relevant formulas. Do not worry: this work is done once and for all as KeOps stores the resulting shared object files (‘.so’) in a cache directory.
KeOps 101: Working with LazyTensors¶
Using KeOps as a backend¶
Gaussian Mixture Models¶
KeOps can be used to fit Mixture Models with custom priors on large datasets:
Interpolation - Splines¶
A fast implementation of the K-means algorithm on the GPU.
K-NN classification using the ArgKMin reduction.
Kernel MMDs, Optimal Transport¶
Thanks to its support of the Sum and LogSumExp reductions, KeOps is perfectly suited to the large-scale computation of Kernel norms and Sinkhorn divergences. Going further, the block-sparse routines allow us to implement genuine coarse-to-fine strategies that scale (almost) linearly with the number of samples, as advocated in (Schmitzer, 2016).
Relying on the KeOps routines
the GeomLoss library
provides Geometric Loss functions as simple PyTorch layers,
with a fully-fledged gallery of examples.
Implemented on the GPU for the very first time, these routines
outperform the standard Sinkhorn algorithm by a factor 50-100
and redefine the state-of-the-art
for discrete Optimal Transport: on modern hardware,
Wasserstein distances between clouds of 100,000 points can now be
computed in less than a second.