Welcome to deel-lip documentation!

Controlling the Lipschitz constant of a layer or a whole neural network has many applications ranging from adversarial robustness to Wasserstein distance estimation.

This library provides implementation of k-Lispchitz layers for keras.

The library contains:

  • k-Lipschitz variant of keras layers such as Dense, Conv2D and Pooling,

  • activation functions compatible with keras,

  • kernel initializers and kernel constraints for keras,

  • loss functions when working with Wasserstein distance estimations,

  • tools to monitor the singular values of kernels during training,

  • tools to convert k-Lipschitz network to regular network for faster evaluation.


You can install deel-lip directly from pypi:

pip install deel-lip

In order to use deel-lip, you also need a valid tensorflow installation. deel-lip supports tensorflow from 2.0 to 2.2.

Cite this work

This library has been built to support the work presented in the paper Achieving robustness in classification using optimal transport with Hinge regularization. This work can be cited as:
Author = {
   Mathieu Serrurier
   and Franck Mamalet
   and Alberto González-Sanz
   and Thibaut Boissin
   and Jean-Michel Loubes
   and Eustasio del Barrio
Title = {
   Achieving robustness in classification using optimal transport with hinge regularization
Year = {2020},
Eprint = {arXiv:2006.06520},